annotate Resources/Orthanc/CMake/DownloadOrthancFramework.cmake @ 298:165723f96767

sync
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 25 Feb 2021 12:15:44 +0100
parents d386d2933022
children 7dc18c36dd3d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 # Orthanc - A Lightweight, RESTful DICOM Store
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 # Department, University Hospital of Liege, Belgium
293
e376158e2dbb upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 292
diff changeset
4 # Copyright (C) 2017-2021 Osimis S.A., Belgium
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 #
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or
281
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
7 # modify it under the terms of the GNU Lesser General Public License
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
8 # as published by the Free Software Foundation, either version 3 of
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
9 # the License, or (at your option) any later version.
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 #
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful, but
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
281
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
14 # Lesser General Public License for more details.
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 #
281
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
16 # You should have received a copy of the GNU Lesser General Public
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
17 # License along with this program. If not, see
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 280
diff changeset
18 # <http://www.gnu.org/licenses/>.
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 ## Check whether the parent script sets the mandatory variables
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 if (NOT DEFINED ORTHANC_FRAMEWORK_SOURCE OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 (NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "system" AND
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg" AND
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "web" AND
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" AND
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "path"))
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_SOURCE must be set to \"system\", \"hg\", \"web\", \"archive\" or \"path\"")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 ## Detection of the requested version
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 if (NOT DEFINED ORTHANC_FRAMEWORK_VERSION)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_VERSION must be set")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 if (DEFINED ORTHANC_FRAMEWORK_MAJOR OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 DEFINED ORTHANC_FRAMEWORK_MINOR OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 DEFINED ORTHANC_FRAMEWORK_REVISION OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 DEFINED ORTHANC_FRAMEWORK_MD5)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 message(FATAL_ERROR "Some internal variable has been set")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 set(ORTHANC_FRAMEWORK_MD5 "")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 if (NOT DEFINED ORTHANC_FRAMEWORK_BRANCH)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 if (ORTHANC_FRAMEWORK_VERSION STREQUAL "mainline")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 set(ORTHANC_FRAMEWORK_BRANCH "default")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 set(ORTHANC_FRAMEWORK_MAJOR 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 set(ORTHANC_FRAMEWORK_MINOR 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 set(ORTHANC_FRAMEWORK_REVISION 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 set(ORTHANC_FRAMEWORK_BRANCH "Orthanc-${ORTHANC_FRAMEWORK_VERSION}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 set(RE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 string(REGEX REPLACE ${RE} "\\1" ORTHANC_FRAMEWORK_MAJOR ${ORTHANC_FRAMEWORK_VERSION})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 string(REGEX REPLACE ${RE} "\\2" ORTHANC_FRAMEWORK_MINOR ${ORTHANC_FRAMEWORK_VERSION})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 string(REGEX REPLACE ${RE} "\\3" ORTHANC_FRAMEWORK_REVISION ${ORTHANC_FRAMEWORK_VERSION})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 if (NOT ORTHANC_FRAMEWORK_MAJOR MATCHES "^[0-9]+$" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 NOT ORTHANC_FRAMEWORK_MINOR MATCHES "^[0-9]+$" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 NOT ORTHANC_FRAMEWORK_REVISION MATCHES "^[0-9]+$")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 message("Bad version of the Orthanc framework: ${ORTHANC_FRAMEWORK_VERSION}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 if (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.3.1")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 set(ORTHANC_FRAMEWORK_MD5 "dac95bd6cf86fb19deaf4e612961f378")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.3.2")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 set(ORTHANC_FRAMEWORK_MD5 "d0ccdf68e855d8224331f13774992750")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.4.0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 set(ORTHANC_FRAMEWORK_MD5 "81e15f34d97ac32bbd7d26e85698835a")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.4.1")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 set(ORTHANC_FRAMEWORK_MD5 "9b6f6114264b17ed421b574cd6476127")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.4.2")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 set(ORTHANC_FRAMEWORK_MD5 "d1ee84927dcf668e60eb5868d24b9394")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 set(ORTHANC_FRAMEWORK_MD5 "4429d8d9dea4ff6648df80ec3c64d79e")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.1")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 set(ORTHANC_FRAMEWORK_MD5 "099671538865e5da96208b37494d6718")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.2")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 set(ORTHANC_FRAMEWORK_MD5 "8867050f3e9a1ce6157c1ea7a9433b1b")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.3")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 set(ORTHANC_FRAMEWORK_MD5 "bf2f5ed1adb8b0fc5f10d278e68e1dfe")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.4")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 set(ORTHANC_FRAMEWORK_MD5 "404baef5d4c43e7c5d9410edda8ef5a5")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.5")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 set(ORTHANC_FRAMEWORK_MD5 "cfc437e0687ae4bd725fd93dc1f08bc4")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.6")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 set(ORTHANC_FRAMEWORK_MD5 "3c29de1e289b5472342947168f0105c0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.7")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 set(ORTHANC_FRAMEWORK_MD5 "e1b76f01116d9b5d4ac8cc39980560e3")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.5.8")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 set(ORTHANC_FRAMEWORK_MD5 "82323e8c49a667f658a3639ea4dbc336")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.6.0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 set(ORTHANC_FRAMEWORK_MD5 "eab428d6e53f61e847fa360bb17ebe25")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.6.1")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 set(ORTHANC_FRAMEWORK_MD5 "3971f5de96ba71dc9d3f3690afeaa7c0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.7.0")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 set(ORTHANC_FRAMEWORK_MD5 "ce5f689e852b01d3672bd3d2f952a5ef")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.7.1")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 set(ORTHANC_FRAMEWORK_MD5 "3c171217f930abe80246997bdbcaf7cc")
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
113 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.7.2")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
114 set(ORTHANC_FRAMEWORK_MD5 "328f94dcbd78c169655a13f7ad58a2c2")
288
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
115 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.7.3")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
116 set(ORTHANC_FRAMEWORK_MD5 "3f1ba9502ec7c5449971d3b56087bcde")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
117 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.7.4")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
118 set(ORTHANC_FRAMEWORK_MD5 "19fcb7c21876af86546baa048a22c6c0")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
119 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.8.0")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 282
diff changeset
120 set(ORTHANC_FRAMEWORK_MD5 "f8ec7554ef5d23ea4ce474b1e8214de9")
289
4b80ddccec54 sync, cppcheck
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 288
diff changeset
121 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.8.1")
4b80ddccec54 sync, cppcheck
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 288
diff changeset
122 set(ORTHANC_FRAMEWORK_MD5 "db094f96399cbe8b9bbdbce34884c220")
292
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
123 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.8.2")
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
124 set(ORTHANC_FRAMEWORK_MD5 "8bfa10e66c9931e74111be0bfb1f4548")
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
125 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.0")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
126 set(ORTHANC_FRAMEWORK_MD5 "cea0b02ce184671eaf1bd668beefbf28")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 # Below this point are development snapshots that were used to
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 # release some plugin, before an official release of the Orthanc
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 # framework was available. Here is the command to be used to
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 # generate a proper archive:
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 #
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 # $ hg archive /tmp/Orthanc-`hg id -i | sed 's/\+//'`.tar.gz
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 #
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "ae0e3fd609df")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 # DICOMweb 1.1 (framework pre-1.6.0)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 set(ORTHANC_FRAMEWORK_MD5 "7e09e9b530a2f527854f0b782d7e0645")
289
4b80ddccec54 sync, cppcheck
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 288
diff changeset
138 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "82652c5fc04f")
4b80ddccec54 sync, cppcheck
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 288
diff changeset
139 # Stone Web viewer 1.0 (framework pre-1.8.1)
4b80ddccec54 sync, cppcheck
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 288
diff changeset
140 set(ORTHANC_FRAMEWORK_MD5 "d77331d68917e66a3f4f9b807bbdab7f")
292
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
141 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "4a3ba4bf4ba7")
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
142 # PostgreSQL 3.3 (framework pre-1.8.2)
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
143 set(ORTHANC_FRAMEWORK_MD5 "2d82bddf06f9cfe82095495cb3b8abde")
293
e376158e2dbb upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 292
diff changeset
144 elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "23ad1b9c7800")
e376158e2dbb upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 292
diff changeset
145 # For "Toolbox::ReadJson()" and "Toolbox::Write{...}Json()" (pre-1.9.0)
e376158e2dbb upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 292
diff changeset
146 set(ORTHANC_FRAMEWORK_MD5 "9af92080e57c60dd288eba46ce606c00")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 endif()
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
150
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
151 elseif (ORTHANC_FRAMEWORK_SOURCE STREQUAL "path")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 message("Using the Orthanc framework from a path of the filesystem. Assuming mainline version.")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 set(ORTHANC_FRAMEWORK_MAJOR 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 set(ORTHANC_FRAMEWORK_MINOR 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 set(ORTHANC_FRAMEWORK_REVISION 999)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 ## Detection of the third-party software
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 find_program(ORTHANC_FRAMEWORK_HG hg)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 if (${ORTHANC_FRAMEWORK_HG} MATCHES "ORTHANC_FRAMEWORK_HG-NOTFOUND")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 message(FATAL_ERROR "Please install Mercurial")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 find_program(ORTHANC_FRAMEWORK_7ZIP 7z
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 PATHS
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 "$ENV{ProgramFiles}/7-Zip"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 "$ENV{ProgramW6432}/7-Zip"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 if (${ORTHANC_FRAMEWORK_7ZIP} MATCHES "ORTHANC_FRAMEWORK_7ZIP-NOTFOUND")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 message(FATAL_ERROR "Please install the '7-zip' software (http://www.7-zip.org/)")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 find_program(ORTHANC_FRAMEWORK_TAR tar)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 if (${ORTHANC_FRAMEWORK_TAR} MATCHES "ORTHANC_FRAMEWORK_TAR-NOTFOUND")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 message(FATAL_ERROR "Please install the 'tar' package")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 ## Case of the Orthanc framework specified as a path on the filesystem
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "path")
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
201 if (NOT DEFINED ORTHANC_FRAMEWORK_ROOT OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
202 ORTHANC_FRAMEWORK_ROOT STREQUAL "")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_ROOT must provide the path to the sources of Orthanc")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 if (NOT EXISTS ${ORTHANC_FRAMEWORK_ROOT})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207 message(FATAL_ERROR "Non-existing directory: ${ORTHANC_FRAMEWORK_ROOT}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
212
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 ## Case of the Orthanc framework cloned using Mercurial
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 if (NOT STATIC_BUILD AND NOT ALLOW_DOWNLOADS)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 set(ORTHANC_ROOT ${CMAKE_BINARY_DIR}/orthanc)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 if (EXISTS ${ORTHANC_ROOT})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
225 message("Updating the Orthanc source repository using Mercurial")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
226 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
227 COMMAND ${ORTHANC_FRAMEWORK_HG} pull
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228 WORKING_DIRECTORY ${ORTHANC_ROOT}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
229 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
230 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
231 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
232 message("Forking the Orthanc source repository using Mercurial")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
233 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234 COMMAND ${ORTHANC_FRAMEWORK_HG} clone "https://hg.orthanc-server.com/orthanc/"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 if (Failure OR NOT EXISTS ${ORTHANC_ROOT})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 message(FATAL_ERROR "Cannot fork the Orthanc repository")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
242 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
243
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
244 message("Setting branch of the Orthanc repository to: ${ORTHANC_FRAMEWORK_BRANCH}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
245
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
246 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
247 COMMAND ${ORTHANC_FRAMEWORK_HG} update -c ${ORTHANC_FRAMEWORK_BRANCH}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 WORKING_DIRECTORY ${ORTHANC_ROOT}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
252 if (Failure)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
253 message(FATAL_ERROR "Error while running Mercurial")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
254 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
255 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
256
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
257
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
258
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
259 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
260 ## Case of the Orthanc framework provided as a source archive on the
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
261 ## filesystem
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
262 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
263
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
264 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive")
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
265 if (NOT DEFINED ORTHANC_FRAMEWORK_ARCHIVE OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
266 ORTHANC_FRAMEWORK_ARCHIVE STREQUAL "")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
267 message(FATAL_ERROR "The variable ORTHANC_FRAMEWORK_ARCHIVE must provide the path to the sources of Orthanc")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
268 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
269 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
270
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
271
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
272
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
273 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
274 ## Case of the Orthanc framework downloaded from the Web
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
275 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
276
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
277 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
278 if (DEFINED ORTHANC_FRAMEWORK_URL)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
279 string(REGEX REPLACE "^.*/" "" ORTHANC_FRAMEMORK_FILENAME "${ORTHANC_FRAMEWORK_URL}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
280 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
281 # Default case: Download from the official Web site
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
282 set(ORTHANC_FRAMEMORK_FILENAME Orthanc-${ORTHANC_FRAMEWORK_VERSION}.tar.gz)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
283 set(ORTHANC_FRAMEWORK_URL "http://orthanc.osimis.io/ThirdPartyDownloads/orthanc-framework/${ORTHANC_FRAMEMORK_FILENAME}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
284 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
285
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
286 set(ORTHANC_FRAMEWORK_ARCHIVE "${CMAKE_SOURCE_DIR}/ThirdPartyDownloads/${ORTHANC_FRAMEMORK_FILENAME}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
287
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
288 if (NOT EXISTS "${ORTHANC_FRAMEWORK_ARCHIVE}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
289 if (NOT STATIC_BUILD AND NOT ALLOW_DOWNLOADS)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
290 message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
291 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
292
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
293 message("Downloading: ${ORTHANC_FRAMEWORK_URL}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
294
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
295 file(DOWNLOAD
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
296 "${ORTHANC_FRAMEWORK_URL}" "${ORTHANC_FRAMEWORK_ARCHIVE}"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
297 SHOW_PROGRESS EXPECTED_MD5 "${ORTHANC_FRAMEWORK_MD5}"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
298 TIMEOUT 60
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
299 INACTIVITY_TIMEOUT 60
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
300 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
301 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
302 message("Using local copy of: ${ORTHANC_FRAMEWORK_URL}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
303 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
304 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
305
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
306
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
307
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
308
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
309 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
310 ## Uncompressing the Orthanc framework, if it was retrieved from a
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
311 ## source archive on the filesystem, or from the official Web site
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
312 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
313
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
314 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
315 ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
316
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
317 if (NOT DEFINED ORTHANC_FRAMEWORK_ARCHIVE OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
318 NOT DEFINED ORTHANC_FRAMEWORK_VERSION OR
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
319 NOT DEFINED ORTHANC_FRAMEWORK_MD5)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
320 message(FATAL_ERROR "Internal error")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
321 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
322
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
323 if (ORTHANC_FRAMEWORK_MD5 STREQUAL "")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
324 message(FATAL_ERROR "Unknown release of Orthanc: ${ORTHANC_FRAMEWORK_VERSION}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
325 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
326
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
327 file(MD5 ${ORTHANC_FRAMEWORK_ARCHIVE} ActualMD5)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
328
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
329 if (NOT "${ActualMD5}" STREQUAL "${ORTHANC_FRAMEWORK_MD5}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
330 message(FATAL_ERROR "The MD5 hash of the Orthanc archive is invalid: ${ORTHANC_FRAMEWORK_ARCHIVE}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
331 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
332
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
333 set(ORTHANC_ROOT "${CMAKE_BINARY_DIR}/Orthanc-${ORTHANC_FRAMEWORK_VERSION}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
334
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
335 if (NOT IS_DIRECTORY "${ORTHANC_ROOT}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
336 if (NOT ORTHANC_FRAMEWORK_ARCHIVE MATCHES ".tar.gz$")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
337 message(FATAL_ERROR "Archive should have the \".tar.gz\" extension: ${ORTHANC_FRAMEWORK_ARCHIVE}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
338 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
339
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
340 message("Uncompressing: ${ORTHANC_FRAMEWORK_ARCHIVE}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
341
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
342 if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
343 # How to silently extract files using 7-zip
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
344 # http://superuser.com/questions/331148/7zip-command-line-extract-silently-quietly
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
345
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
346 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
347 COMMAND ${ORTHANC_FRAMEWORK_7ZIP} e -y ${ORTHANC_FRAMEWORK_ARCHIVE}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
348 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
349 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
350 OUTPUT_QUIET
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
351 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
352
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
353 if (Failure)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
354 message(FATAL_ERROR "Error while running the uncompression tool")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
355 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
356
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
357 get_filename_component(TMP_FILENAME "${ORTHANC_FRAMEWORK_ARCHIVE}" NAME)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
358 string(REGEX REPLACE ".gz$" "" TMP_FILENAME2 "${TMP_FILENAME}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
359
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
360 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
361 COMMAND ${ORTHANC_FRAMEWORK_7ZIP} x -y ${TMP_FILENAME2}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
362 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
363 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
364 OUTPUT_QUIET
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
365 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
366
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
367 else()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
368 execute_process(
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
369 COMMAND sh -c "${ORTHANC_FRAMEWORK_TAR} xfz ${ORTHANC_FRAMEWORK_ARCHIVE}"
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
370 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
371 RESULT_VARIABLE Failure
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
372 )
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
373 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
374
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
375 if (Failure)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
376 message(FATAL_ERROR "Error while running the uncompression tool")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
377 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
378
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
379 if (NOT IS_DIRECTORY "${ORTHANC_ROOT}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
380 message(FATAL_ERROR "The Orthanc framework was not uncompressed at the proper location. Check the CMake instructions.")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
381 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
382 endif()
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
383 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
384
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
385
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
386
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
387 ##
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
388 ## Determine the path to the sources of the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
389 ##
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
390
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
391 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "archive" OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
392 ORTHANC_FRAMEWORK_SOURCE STREQUAL "hg" OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
393 ORTHANC_FRAMEWORK_SOURCE STREQUAL "web")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
394 if (NOT DEFINED ORTHANC_ROOT OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
395 NOT DEFINED ORTHANC_FRAMEWORK_MAJOR OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
396 NOT DEFINED ORTHANC_FRAMEWORK_MINOR OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
397 NOT DEFINED ORTHANC_FRAMEWORK_REVISION)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
398 message(FATAL_ERROR "Internal error in the DownloadOrthancFramework.cmake file")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
399 endif()
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
400
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
401 unset(ORTHANC_FRAMEWORK_ROOT CACHE)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
402
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
403 if ("${ORTHANC_FRAMEWORK_MAJOR}.${ORTHANC_FRAMEWORK_MINOR}.${ORTHANC_FRAMEWORK_REVISION}" VERSION_LESS "1.7.2")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
404 set(ORTHANC_FRAMEWORK_ROOT "${ORTHANC_ROOT}/Core" CACHE
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
405 STRING "Path to the Orthanc framework source directory")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
406 set(ENABLE_PLUGINS_VERSION_SCRIPT OFF)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
407 else()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
408 set(ORTHANC_FRAMEWORK_ROOT "${ORTHANC_ROOT}/OrthancFramework/Sources" CACHE
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
409 STRING "Path to the Orthanc framework source directory")
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
410 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
411
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
412 unset(ORTHANC_ROOT)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
413 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
414
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
415 if (NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
416 if (NOT EXISTS ${ORTHANC_FRAMEWORK_ROOT}/OrthancException.h OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
417 NOT EXISTS ${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
418 message(FATAL_ERROR "Directory not containing the source code of the Orthanc framework: ${ORTHANC_FRAMEWORK_ROOT}")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
419 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
420 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
421
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
422
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
423
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
424 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
425 ## Case of the Orthanc framework installed as a shared library in a
275
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 273
diff changeset
426 ## GNU/Linux distribution (typically Debian). New in Orthanc 1.7.2.
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
427 ##
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
428
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
429 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
430 set(ORTHANC_FRAMEWORK_LIBDIR "" CACHE PATH "")
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
431 set(ORTHANC_FRAMEWORK_USE_SHARED ON CACHE BOOL "Whether to use the shared library or the static library")
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
432 set(ORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES "" CACHE STRING "Additional libraries to link against, separated by whitespaces, typically needed if using the static library (a typical value is \"uuid curl civetweb\")")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
433
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
434 if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
435 CMAKE_COMPILER_IS_GNUCXX) # MinGW
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
436 set(DYNAMIC_MINGW_STDLIB ON) # Disable static linking against libc (to throw exceptions)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
437 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libstdc++")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
438 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
439 endif()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
440
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
441 include(CheckIncludeFile)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
442 include(CheckIncludeFileCXX)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
443 include(FindPythonInterp)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
444 include(${CMAKE_CURRENT_LIST_DIR}/Compiler.cmake)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
445 include(${CMAKE_CURRENT_LIST_DIR}/DownloadPackage.cmake)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
446 include(${CMAKE_CURRENT_LIST_DIR}/AutoGeneratedCode.cmake)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
447 set(EMBED_RESOURCES_PYTHON ${CMAKE_CURRENT_LIST_DIR}/EmbedResources.py)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
448
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
449 # The "OrthancFramework" library must be the first one to be included
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
450 if ("${ORTHANC_FRAMEWORK_LIBDIR}" STREQUAL "")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
451 set(ORTHANC_FRAMEWORK_LIBRARIES OrthancFramework)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
452 else()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
453 if(ORTHANC_FRAMEWORK_USE_SHARED)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
454 list(GET CMAKE_FIND_LIBRARY_PREFIXES 0 Prefix)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
455 list(GET CMAKE_FIND_LIBRARY_SUFFIXES 0 Suffix)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
456 else()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
457 list(GET CMAKE_FIND_LIBRARY_PREFIXES 0 Prefix)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
458 list(GET CMAKE_FIND_LIBRARY_SUFFIXES 1 Suffix)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
459 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
460 set(ORTHANC_FRAMEWORK_LIBRARIES
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
461 ${ORTHANC_FRAMEWORK_LIBDIR}/${Prefix}OrthancFramework${Suffix})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
462 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
463
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
464 if (NOT ORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES STREQUAL "")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
465 # https://stackoverflow.com/a/5272993/881731
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
466 string(REPLACE " " ";" tmp ${ORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
467 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES ${tmp})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
468 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
469
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
470 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows" OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
471 ORTHANC_FRAMEWORK_STATIC)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
472 include_directories(${ORTHANC_FRAMEWORK_ROOT}/..)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
473 else()
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
474 # Look for mandatory dependency JsonCpp (cf. JsonCppConfiguration.cmake)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
475 find_path(JSONCPP_INCLUDE_DIR json/reader.h
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
476 /usr/include/jsoncpp
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
477 /usr/local/include/jsoncpp
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
478 )
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
479
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
480 message("JsonCpp include dir: ${JSONCPP_INCLUDE_DIR}")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
481 include_directories(${JSONCPP_INCLUDE_DIR})
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
482 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES jsoncpp)
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
483
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
484 CHECK_INCLUDE_FILE_CXX(${JSONCPP_INCLUDE_DIR}/json/reader.h HAVE_JSONCPP_H)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
485 if (NOT HAVE_JSONCPP_H)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
486 message(FATAL_ERROR "Please install the libjsoncpp-dev package")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
487 endif()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
488
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
489 # Switch to the C++11 standard if the version of JsonCpp is 1.y.z
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
490 # (same as variable JSONCPP_CXX11 in the source code of Orthanc)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
491 if (EXISTS ${JSONCPP_INCLUDE_DIR}/json/version.h)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
492 file(STRINGS
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
493 "${JSONCPP_INCLUDE_DIR}/json/version.h"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
494 JSONCPP_VERSION_MAJOR1 REGEX
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
495 ".*define JSONCPP_VERSION_MAJOR.*")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
496
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
497 if (NOT JSONCPP_VERSION_MAJOR1)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
498 message(FATAL_ERROR "Unable to extract the major version of JsonCpp")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
499 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
500
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
501 string(REGEX REPLACE
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
502 ".*JSONCPP_VERSION_MAJOR.*([0-9]+)$" "\\1"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
503 JSONCPP_VERSION_MAJOR ${JSONCPP_VERSION_MAJOR1})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
504 message("JsonCpp major version: ${JSONCPP_VERSION_MAJOR}")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
505
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
506 if (JSONCPP_VERSION_MAJOR GREATER 0)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
507 message("Switching to C++11 standard, as version of JsonCpp is >= 1.0.0")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
508 if (CMAKE_COMPILER_IS_GNUCXX)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
509 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
510 elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
511 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
512 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
513 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
514 else()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
515 message("Unable to detect the major version of JsonCpp, assuming < 1.0.0")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
516 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 281
diff changeset
517
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
518 # Look for mandatory dependency Boost (cf. BoostConfiguration.cmake)
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
519 # NB: "locale" and "iostreams" are not required if using the shared library
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
520 include(FindBoost)
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
521 find_package(Boost COMPONENTS filesystem thread system date_time
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
522 iostreams locale regex ${ORTHANC_BOOST_COMPONENTS})
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
523
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
524 if (NOT Boost_FOUND)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
525 message(FATAL_ERROR "Unable to locate Boost on this system")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
526 endif()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
527
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
528 include_directories(${Boost_INCLUDE_DIRS})
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
529 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES ${Boost_LIBRARIES})
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
530
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
531 # Optional component - Lua
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
532 if (ENABLE_LUA OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
533 NOT ORTHANC_FRAMEWORK_USE_SHARED)
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
534 include(FindLua)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
535
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
536 if (NOT LUA_FOUND)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
537 message(FATAL_ERROR "Please install the liblua-dev package")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
538 endif()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
539
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
540 include_directories(${LUA_INCLUDE_DIR})
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
541 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES ${LUA_LIBRARIES})
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
542 endif()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
543
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
544 # Optional component - SQLite
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
545 if (ENABLE_SQLITE OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
546 NOT ORTHANC_FRAMEWORK_USE_SHARED)
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
547 CHECK_INCLUDE_FILE(sqlite3.h HAVE_SQLITE_H)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
548 if (NOT HAVE_SQLITE_H)
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
549 message(FATAL_ERROR "Please install the libsqlite3-dev package")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
550 endif()
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
551 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES sqlite3)
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
552 endif()
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
553
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
554 # Optional component - Pugixml
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
555 if (ENABLE_PUGIXML OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
556 NOT ORTHANC_FRAMEWORK_USE_SHARED)
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
557 CHECK_INCLUDE_FILE_CXX(pugixml.hpp HAVE_PUGIXML_H)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
558 if (NOT HAVE_PUGIXML_H)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
559 message(FATAL_ERROR "Please install the libpugixml-dev package")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
560 endif()
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
561 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES pugixml)
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
562 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
563
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
564 # Optional component - DCMTK
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
565 if (ENABLE_DCMTK OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
566 NOT ORTHANC_FRAMEWORK_USE_SHARED)
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
567 include(FindDCMTK NO_MODULE)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
568 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES ${DCMTK_LIBRARIES})
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
569 include_directories(${DCMTK_INCLUDE_DIRS})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
570 endif()
292
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
571
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
572 # Optional component - OpenSSL
298
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
573 if (ENABLE_SSL OR
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 297
diff changeset
574 NOT ORTHANC_FRAMEWORK_USE_SHARED)
292
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
575 include(FindOpenSSL)
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
576 if (NOT ${OPENSSL_FOUND})
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
577 message(FATAL_ERROR "Unable to find OpenSSL")
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
578 endif()
aadbffcee805 remove calls to deprecated classes of JsonCpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 289
diff changeset
579 include_directories(${OPENSSL_INCLUDE_DIR})
297
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
580 list(APPEND ORTHANC_FRAMEWORK_LIBRARIES ${OPENSSL_LIBRARIES})
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
581 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
582 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
583
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
584 # Look for Orthanc framework shared library
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
585 include(CheckCXXSymbolExists)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
586
269
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
587 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
588 set(ORTHANC_FRAMEWORK_INCLUDE_DIR ${ORTHANC_FRAMEWORK_ROOT})
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
589 else()
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
590 find_path(ORTHANC_FRAMEWORK_INCLUDE_DIR OrthancFramework.h
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
591 /usr/include/orthanc-framework
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
592 /usr/local/include/orthanc-framework
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
593 ${ORTHANC_FRAMEWORK_ROOT}
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
594 )
938257eebc03 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 266
diff changeset
595 endif()
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
596
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
597 if (${ORTHANC_FRAMEWORK_INCLUDE_DIR} STREQUAL "ORTHANC_FRAMEWORK_INCLUDE_DIR-NOTFOUND")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
598 message(FATAL_ERROR "Cannot locate the OrthancFramework.h header")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
599 endif()
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
600
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
601 message("Orthanc framework include dir: ${ORTHANC_FRAMEWORK_INCLUDE_DIR}")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
602 include_directories(${ORTHANC_FRAMEWORK_INCLUDE_DIR})
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
603
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
604 set(CMAKE_REQUIRED_INCLUDES "${ORTHANC_FRAMEWORK_INCLUDE_DIR}")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
605 set(CMAKE_REQUIRED_LIBRARIES "${ORTHANC_FRAMEWORK_LIBRARIES}")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
606
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
607 check_cxx_symbol_exists("Orthanc::InitializeFramework" "OrthancFramework.h" HAVE_ORTHANC_FRAMEWORK)
272
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
608 if (NOT HAVE_ORTHANC_FRAMEWORK)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
609 message(FATAL_ERROR "Cannot find the Orthanc framework")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
610 endif()
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
611
280
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 275
diff changeset
612 unset(CMAKE_REQUIRED_INCLUDES)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 275
diff changeset
613 unset(CMAKE_REQUIRED_LIBRARIES)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
614 endif()