Mercurial > hg > orthanc-webviewer
annotate CMakeLists.txt @ 195:e481ff4a86cc
sync
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 17 Apr 2018 14:47:37 +0200 |
parents | 20636b255424 |
children | 21df474deeb1 |
rev | line source |
---|---|
0 | 1 # Orthanc - A Lightweight, RESTful DICOM Store |
122 | 2 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
0 | 3 # Department, University Hospital of Liege, Belgium |
174
81f16c5667ba
upgrade to year 2018
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
172
diff
changeset
|
4 # Copyright (C) 2017-2018 Osimis S.A., Belgium |
0 | 5 # |
6 # This program is free software: you can redistribute it and/or | |
7 # modify it under the terms of the GNU Affero General Public License | |
8 # as published by the Free Software Foundation, either version 3 of | |
9 # the License, or (at your option) any later version. | |
10 # | |
11 # This program is distributed in the hope that it will be useful, but | |
12 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 # Affero General Public License for more details. | |
15 # | |
16 # You should have received a copy of the GNU Affero General Public License | |
17 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | |
19 | |
20 cmake_minimum_required(VERSION 2.8) | |
21 | |
13 | 22 project(OrthancWebViewer) |
0 | 23 |
166
e5ac1fd6cf7d
fix mainline version
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
164
diff
changeset
|
24 set(ORTHANC_WEBVIEWER_VERSION "mainline") |
8 | 25 |
193 | 26 if (ORTHANC_WEBVIEWER_VERSION STREQUAL "mainline") |
27 set(ORTHANC_FRAMEWORK_VERSION "mainline") | |
28 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") | |
29 else() | |
30 set(ORTHANC_FRAMEWORK_VERSION "1.3.1") | |
31 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") | |
32 endif() | |
33 | |
34 | |
0 | 35 # Parameters of the build |
36 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
193 | 37 set(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)") |
0 | 38 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") |
193 | 39 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")") |
40 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"") | |
41 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"") | |
0 | 42 |
43 # Advanced parameters to fine-tune linking against system libraries | |
44 set(USE_SYSTEM_GDCM ON CACHE BOOL "Use the system version of Grassroot DICOM (GDCM)") | |
175 | 45 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK") |
0 | 46 |
176
55f8cf4ea237
support for Linux Standard Base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
175
diff
changeset
|
47 |
193 | 48 # Download and setup the Orthanc framework |
191
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
49 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/DownloadOrthancFramework.cmake) |
195 | 50 |
51 set(ORTHANC_FRAMEWORK_PLUGIN ON) | |
191
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
52 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) |
0 | 53 |
191
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
54 set(ENABLE_LOCALE OFF) # Disable support for locales (notably in Boost) |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
55 set(ENABLE_GOOGLE_TEST ON) |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
56 set(ENABLE_SQLITE ON) |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
57 |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
58 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake) |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
59 include_directories(${ORTHANC_ROOT}) |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
60 |
26 | 61 |
0 | 62 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GdcmConfiguration.cmake) |
63 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JavaScriptLibraries.cmake) | |
64 | |
65 | |
143
16f8471e3872
Performance warning if runtime debug assertions are turned on
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
139
diff
changeset
|
66 # 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
|
67 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
|
68 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-0.9.5) |
0 | 69 else () |
70 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H) | |
71 if (NOT HAVE_ORTHANC_H) | |
72 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK") | |
73 endif() | |
74 endif() | |
75 | |
76 | |
77 if (STANDALONE_BUILD) | |
78 add_definitions( | |
79 -DORTHANC_STANDALONE=1 | |
80 ) | |
81 set(EMBEDDED_RESOURCES | |
82 WEB_VIEWER ${CMAKE_SOURCE_DIR}/WebApplication | |
83 ) | |
84 else() | |
85 add_definitions( | |
86 -DORTHANC_STANDALONE=0 | |
87 -DWEB_VIEWER_PATH="${CMAKE_SOURCE_DIR}/WebApplication/" | |
88 ) | |
89 endif() | |
90 | |
91 EmbedResources( | |
92 ORTHANC_EXPLORER ${CMAKE_SOURCE_DIR}/Resources/OrthancExplorer.js | |
93 JAVASCRIPT_LIBS ${JAVASCRIPT_LIBS_DIR} | |
94 ${EMBEDDED_RESOURCES} | |
95 ) | |
96 | |
26 | 97 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR |
98 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR | |
99 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") | |
100 link_libraries(rt) | |
101 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
102 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
|
103 |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
104 execute_process( |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
105 COMMAND |
48 | 106 ${PYTHON_EXECUTABLE} ${ORTHANC_ROOT}/Resources/WindowsResources.py |
45
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
107 ${ORTHANC_WEBVIEWER_VERSION} "OrthancWebViewer" OrthancWebViewer.dll "Web viewer of medical images for Orthanc" |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
108 ERROR_VARIABLE Failure |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
109 OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
110 ) |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
111 |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
112 if (Failure) |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
113 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
|
114 endif() |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
115 |
05ac3f595ba5
Inject version information into Windows binaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
116 list(APPEND AUTOGENERATED_SOURCES ${AUTOGENERATED_DIR}/Version.rc) |
26 | 117 endif() |
118 | |
57 | 119 if (APPLE) |
120 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreFoundation") | |
81 | 121 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework CoreFoundation") |
57 | 122 endif() |
60
902dedf9882a
removed unneccessary dependency on md5
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
57
diff
changeset
|
123 |
26 | 124 |
0 | 125 set(CORE_SOURCES |
126 ${CMAKE_SOURCE_DIR}/Plugin/Cache/CacheManager.cpp | |
127 ${CMAKE_SOURCE_DIR}/Plugin/Cache/CacheScheduler.cpp | |
128 ${CMAKE_SOURCE_DIR}/Plugin/ViewerToolbox.cpp | |
129 ${CMAKE_SOURCE_DIR}/Plugin/ViewerPrefetchPolicy.cpp | |
130 ${CMAKE_SOURCE_DIR}/Plugin/SeriesInformationAdapter.cpp | |
191
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
131 |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
132 ${ORTHANC_CORE_SOURCES} |
0 | 133 ) |
134 | |
135 add_library(OrthancWebViewer | |
136 SHARED | |
137 ${CORE_SOURCES} | |
138 ${AUTOGENERATED_SOURCES} | |
139 ${CMAKE_SOURCE_DIR}/Plugin/Plugin.cpp | |
140 | |
141 # The following files depend on GDCM | |
142 ${CMAKE_SOURCE_DIR}/Plugin/DecodedImageAdapter.cpp | |
191
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
143 ${ORTHANC_ROOT}/Plugins/Samples/GdcmDecoder/GdcmImageDecoder.cpp |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
144 ${ORTHANC_ROOT}/Plugins/Samples/GdcmDecoder/GdcmDecoderCache.cpp |
993dd140bd30
Resort to Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
183
diff
changeset
|
145 ${ORTHANC_ROOT}/Plugins/Samples/GdcmDecoder/OrthancImageWrapper.cpp |
0 | 146 ) |
147 | |
26 | 148 |
0 | 149 if (STATIC_BUILD OR NOT USE_SYSTEM_GDCM) |
150 add_dependencies(OrthancWebViewer GDCM) | |
151 endif() | |
152 | |
26 | 153 target_link_libraries(OrthancWebViewer ${GDCM_LIBRARIES}) |
0 | 154 |
8 | 155 message("Setting the version of the library to ${ORTHANC_WEBVIEWER_VERSION}") |
12 | 156 |
157 add_definitions(-DORTHANC_WEBVIEWER_VERSION="${ORTHANC_WEBVIEWER_VERSION}") | |
158 | |
8 | 159 set_target_properties(OrthancWebViewer PROPERTIES |
160 VERSION ${ORTHANC_WEBVIEWER_VERSION} | |
161 SOVERSION ${ORTHANC_WEBVIEWER_VERSION}) | |
162 | |
0 | 163 install( |
8 | 164 TARGETS OrthancWebViewer |
165 RUNTIME DESTINATION lib # Destination for Windows | |
9 | 166 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux |
8 | 167 ) |
0 | 168 |
169 add_executable(UnitTests | |
170 ${CORE_SOURCES} | |
172 | 171 ${GOOGLE_TEST_SOURCES} |
0 | 172 UnitTestsSources/UnitTestsMain.cpp |
173 ) | |
183 | 174 |
175 target_link_libraries(UnitTests ${GOOGLE_TEST_LIBRARIES}) |