annotate CMakeLists.txt @ 308:924f737bdd8a

contributing
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 14 Aug 2023 10:20:37 +0200
parents 2978317b9bca
children a8a2471ece25
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 # Orthanc - A Lightweight, RESTful DICOM Store
122
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 121
diff changeset
2 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 # Department, University Hospital of Liege, Belgium
303
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 301
diff changeset
4 # Copyright (C) 2017-2022 Osimis S.A., Belgium
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 301
diff changeset
5 # Copyright (C) 2021-2022 Sebastien Jodogne, ICTEAM UCLouvain, Belgium
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 #
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 # modify it under the terms of the GNU Affero General Public License
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 # as published by the Free Software Foundation, either version 3 of
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 # the License, or (at your option) any later version.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 #
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful, but
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 # Affero General Public License for more details.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 #
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 cmake_minimum_required(VERSION 2.8)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22
13
09421764214b fixes for visual studio
jodogne
parents: 12
diff changeset
23 project(OrthancWebViewer)
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24
306
2978317b9bca back to mainline
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 305
diff changeset
25 set(ORTHANC_PLUGIN_VERSION "mainline")
8
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
26
206
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
27 if (ORTHANC_PLUGIN_VERSION STREQUAL "mainline")
224
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 215
diff changeset
28 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline")
193
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
29 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
30 else()
305
af985076f647 OrthancWebViewer-2.8
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 303
diff changeset
31 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.9.7")
193
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
32 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
33 endif()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
34
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
35
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 # Parameters of the build
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
193
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
38 set(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)")
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages")
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
40 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc framework (can be \"system\", \"hg\", \"archive\", \"web\" or \"path\")")
224
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 215
diff changeset
41 set(ORTHANC_FRAMEWORK_VERSION "${ORTHANC_FRAMEWORK_DEFAULT_VERSION}" CACHE STRING "Version of the Orthanc framework")
193
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
42 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
43 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"")
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44
270
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
45
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 # Advanced parameters to fine-tune linking against system libraries
175
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 174
diff changeset
47 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK")
270
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
48 set(ORTHANC_FRAMEWORK_STATIC OFF CACHE BOOL "If linking against the Orthanc framework system library, indicates whether this library was statically linked")
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 269
diff changeset
49 mark_as_advanced(ORTHANC_FRAMEWORK_STATIC)
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50
176
55f8cf4ea237 support for Linux Standard Base
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
51
193
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 191
diff changeset
52 # Download and setup the Orthanc framework
277
d5b46b450b54 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 276
diff changeset
53 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
d5b46b450b54 simplification
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 276
diff changeset
54
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
55 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
300
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
56 if (ORTHANC_FRAMEWORK_USE_SHARED)
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
57 include(FindBoost)
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
58 find_package(Boost COMPONENTS filesystem regex thread)
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
59
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
60 if (NOT Boost_FOUND)
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
61 message(FATAL_ERROR "Unable to locate Boost on this system")
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
62 endif()
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
63
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
64 link_libraries(${Boost_LIBRARIES} jsoncpp)
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
65 endif()
7dc18c36dd3d sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
66
275
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 274
diff changeset
67 link_libraries(${ORTHANC_FRAMEWORK_LIBRARIES})
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68
275
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 274
diff changeset
69 set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test")
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 274
diff changeset
70 set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)")
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 274
diff changeset
71 mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
3a9749b1dfce link against system-wide Orthanc Framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 274
diff changeset
72 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/GoogleTestConfiguration.cmake)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
73 else()
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 279
diff changeset
74 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
75
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
76 set(ENABLE_LOCALE OFF) # Disable support for locales (notably in Boost)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
77 set(ENABLE_GOOGLE_TEST ON)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
78 set(ENABLE_SQLITE ON)
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
79 set(ENABLE_MODULE_JOBS OFF CACHE INTERNAL "")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
80 set(ENABLE_MODULE_DICOM OFF CACHE INTERNAL "")
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
81
282
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 279
diff changeset
82 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
301
e89cc1536b51 improved CMakeLists.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 300
diff changeset
83 include_directories(${ORTHANC_FRAMEWORK_ROOT})
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
84 endif()
191
993dd140bd30 Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 183
diff changeset
85
26
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
86
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JavaScriptLibraries.cmake)
274
52b56343d268 using OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 272
diff changeset
88 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90
143
16f8471e3872 Performance warning if runtime debug assertions are turned on
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 139
diff changeset
91 # Check that the Orthanc SDK headers are available
68
45da32410346 USE_SYSTEM_ORTHANC_SDK option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 60
diff changeset
92 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK)
191
993dd140bd30 Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 183
diff changeset
93 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-0.9.5)
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 else ()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 if (NOT HAVE_ORTHANC_H)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK")
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 endif()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 endif()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 if (STANDALONE_BUILD)
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 add_definitions(
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 -DORTHANC_STANDALONE=1
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 set(EMBEDDED_RESOURCES
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 WEB_VIEWER ${CMAKE_SOURCE_DIR}/WebApplication
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 else()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 add_definitions(
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 -DORTHANC_STANDALONE=0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 -DWEB_VIEWER_PATH="${CMAKE_SOURCE_DIR}/WebApplication/"
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 endif()
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115
204
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 201
diff changeset
116 add_definitions(
229
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 226
diff changeset
117 -DHAS_ORTHANC_EXCEPTION=1
204
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 201
diff changeset
118 )
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 201
diff changeset
119
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 EmbedResources(
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 ORTHANC_EXPLORER ${CMAKE_SOURCE_DIR}/Resources/OrthancExplorer.js
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 JAVASCRIPT_LIBS ${JAVASCRIPT_LIBS_DIR}
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 ${EMBEDDED_RESOURCES}
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125
26
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
126 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
127 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
128 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
129 link_libraries(rt)
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
130 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
131 SET(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lws2_32")
45
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
132
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
133 execute_process(
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
134 COMMAND
284
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 283
diff changeset
135 ${PYTHON_EXECUTABLE} ${ORTHANC_FRAMEWORK_ROOT}/../Resources/WindowsResources.py
206
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
136 ${ORTHANC_PLUGIN_VERSION} "OrthancWebViewer" OrthancWebViewer.dll "Web viewer of medical images for Orthanc"
45
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
137 ERROR_VARIABLE Failure
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
138 OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
139 )
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
140
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
141 if (Failure)
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
142 message(FATAL_ERROR "Error while computing the version information: ${Failure}")
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
143 endif()
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
144
05ac3f595ba5 Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 44
diff changeset
145 list(APPEND AUTOGENERATED_SOURCES ${AUTOGENERATED_DIR}/Version.rc)
26
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
146 endif()
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
147
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
148
264
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
149 # As the "EmbeddedResources.(h|cpp)" are shared by both the
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
150 # "UnitTests" and the "OrthancWebViewer" targets, avoid race
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
151 # conditions in the code generation by adding a target between them
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
152 add_custom_target(
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
153 AutogeneratedTarget
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
154 DEPENDS
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
155 ${AUTOGENERATED_SOURCES}
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
156 )
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
157
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 set(CORE_SOURCES
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 ${CMAKE_SOURCE_DIR}/Plugin/Cache/CacheManager.cpp
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 ${CMAKE_SOURCE_DIR}/Plugin/Cache/CacheScheduler.cpp
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 ${CMAKE_SOURCE_DIR}/Plugin/ViewerToolbox.cpp
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 ${CMAKE_SOURCE_DIR}/Plugin/ViewerPrefetchPolicy.cpp
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 ${CMAKE_SOURCE_DIR}/Plugin/SeriesInformationAdapter.cpp
191
993dd140bd30 Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 183
diff changeset
164
993dd140bd30 Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 183
diff changeset
165 ${ORTHANC_CORE_SOURCES}
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 add_library(OrthancWebViewer
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 SHARED
231
7097d0eaac76 Move the GDCM decoder out of the Orthanc Web viewer plugin as a separate plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 230
diff changeset
170 ${AUTOGENERATED_SOURCES}
7097d0eaac76 Move the GDCM decoder out of the Orthanc Web viewer plugin as a separate plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 230
diff changeset
171 ${CMAKE_SOURCE_DIR}/Plugin/DecodedImageAdapter.cpp
7097d0eaac76 Move the GDCM decoder out of the Orthanc Web viewer plugin as a separate plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 230
diff changeset
172 ${CMAKE_SOURCE_DIR}/Plugin/Plugin.cpp
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 ${CORE_SOURCES}
266
4e9d30c19b4b linking against orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 264
diff changeset
174 ${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 )
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176
264
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
177 add_dependencies(OrthancWebViewer AutogeneratedTarget)
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
178
26
a6492d20b2a8 modularization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 23
diff changeset
179
206
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
180 message("Setting the version of the library to ${ORTHANC_PLUGIN_VERSION}")
12
379131283479 version
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 11
diff changeset
181
206
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
182 add_definitions(-DORTHANC_PLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}")
12
379131283479 version
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 11
diff changeset
183
8
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
184 set_target_properties(OrthancWebViewer PROPERTIES
206
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
185 VERSION ${ORTHANC_PLUGIN_VERSION}
d1ed9efdea6c rename ORTHANC_WEBVIEWER_VERSION as ORTHANC_PLUGIN_VERSION
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 204
diff changeset
186 SOVERSION ${ORTHANC_PLUGIN_VERSION})
8
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
187
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 install(
8
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
189 TARGETS OrthancWebViewer
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
190 RUNTIME DESTINATION lib # Destination for Windows
9
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
191 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux
8
49fa9c774465 versioning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 7
diff changeset
192 )
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 add_executable(UnitTests
259
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 258
diff changeset
195 ${AUTOGENERATED_SOURCES}
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 ${CORE_SOURCES}
172
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 168
diff changeset
197 ${GOOGLE_TEST_SOURCES}
0
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 UnitTestsSources/UnitTestsMain.cpp
02f7a0400a91 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 )
183
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 176
diff changeset
200
264
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
201 add_dependencies(UnitTests AutogeneratedTarget)
38e9bb57f761 avoid race condition in CMake
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
202
183
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 176
diff changeset
203 target_link_libraries(UnitTests ${GOOGLE_TEST_LIBRARIES})