Mercurial > hg > orthanc-stone
annotate Resources/CMake/OrthancStone.cmake @ 22:b01d46e5a2b3
support for sandboxed environments
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 23 Nov 2016 12:08:15 +0100 |
parents | 20f623762e8e |
children | 99b833843ba9 |
rev | line source |
---|---|
20
946377d1c992
skeleton for unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
16
diff
changeset
|
1 # Version of the build, should always be "mainline" except in release branches |
946377d1c992
skeleton for unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
16
diff
changeset
|
2 set(ORTHANC_STONE_VERSION "mainline") |
946377d1c992
skeleton for unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
16
diff
changeset
|
3 |
0 | 4 ##################################################################### |
5 ## Parameters of the build | |
6 ##################################################################### | |
7 | |
8 # Generic parameters | |
9 SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
10 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
11 SET(STONE_SANDBOXED OFF CACHE BOOL "Whether Stone runs inside a sandboxed environment (such as Google NaCl)") |
0 | 12 |
13 # Optional components | |
14 SET(ENABLE_CURL ON CACHE BOOL "Include support for libcurl") | |
15 SET(ENABLE_SSL OFF CACHE BOOL "Include support for SSL") | |
16 SET(ENABLE_SDL ON CACHE BOOL "Include support for SDL") | |
17 SET(ENABLE_LOGGING ON CACHE BOOL "Enable logging facilities from Orthanc") | |
18 | |
19 # Advanced parameters to fine-tune linking against system libraries | |
20 SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost") | |
21 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") | |
22 SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib") | |
23 SET(USE_SYSTEM_CAIRO ON CACHE BOOL "Use the system version of Cairo") | |
24 SET(USE_SYSTEM_PIXMAN ON CACHE BOOL "Use the system version of Pixman") | |
25 SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of libpng") | |
26 SET(USE_SYSTEM_LIBJPEG ON CACHE BOOL "Use the system version of libjpeg") | |
27 SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl") | |
28 SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL") | |
29 SET(USE_SYSTEM_SDL ON CACHE BOOL "Use the system version of SDL2") | |
30 | |
31 | |
32 ##################################################################### | |
33 ## Configure mandatory third-party components | |
34 ##################################################################### | |
35 | |
36 SET(ORTHANC_STONE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) | |
16 | 37 SET(ORTHANC_ROOT ${ORTHANC_STONE_DIR}/Resources/Orthanc) |
0 | 38 |
39 include(CheckIncludeFiles) | |
40 include(CheckIncludeFileCXX) | |
41 include(CheckLibraryExists) | |
42 include(FindPythonInterp) | |
43 include(FindPkgConfig) | |
44 | |
45 include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake) | |
46 include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake) | |
47 include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake) | |
48 | |
49 include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake) | |
50 include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake) | |
51 include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake) | |
52 include(${ORTHANC_ROOT}/Resources/CMake/LibJpegConfiguration.cmake) | |
53 | |
54 include(${CMAKE_CURRENT_LIST_DIR}/BoostExtendedConfiguration.cmake) | |
55 include(${CMAKE_CURRENT_LIST_DIR}/CairoConfiguration.cmake) | |
56 include(${CMAKE_CURRENT_LIST_DIR}/PixmanConfiguration.cmake) | |
57 | |
58 | |
59 ##################################################################### | |
60 ## Configure optional third-party components | |
61 ##################################################################### | |
62 | |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
63 if (STONE_SANDBOXED) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
64 add_definitions( |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
65 -DORTHANC_ENABLE_CURL=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
66 -DORTHANC_ENABLE_LOGGING=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
67 -DORTHANC_ENABLE_SDL=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
68 -DORTHANC_ENABLE_SSL=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
69 -DORTHANC_SANDBOXED=1 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
70 ) |
0 | 71 else() |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
72 list(APPEND ORTHANC_STONE_SOURCES |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
73 ${ORTHANC_ROOT}/Core/HttpClient.cpp |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
74 ${ORTHANC_ROOT}/Core/SystemToolbox.cpp |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
75 ) |
0 | 76 |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
77 add_definitions( |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
78 -DORTHANC_SANDBOXED=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
79 ) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
80 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
81 if (ENABLE_LOGGING) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
82 add_definitions(-DORTHANC_ENABLE_LOGGING=1) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
83 else() |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
84 add_definitions(-DORTHANC_ENABLE_LOGGING=0) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
85 endif() |
0 | 86 |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
87 if (ENABLE_SDL) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
88 include(${CMAKE_CURRENT_LIST_DIR}/SdlConfiguration.cmake) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
89 add_definitions(-DORTHANC_ENABLE_SDL=1) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
90 else() |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
91 add_definitions(-DORTHANC_ENABLE_SDL=0) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
92 endif() |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
93 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
94 if (ENABLE_CURL) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
95 add_definitions(-DORTHANC_ENABLE_CURL=1) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
96 include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake) |
0 | 97 |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
98 if (ENABLE_SSL) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
99 set(ENABLE_PKCS11 OFF) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
100 add_definitions(-DORTHANC_ENABLE_SSL=1) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
101 include(${ORTHANC_ROOT}/Resources/CMake/OpenSslConfiguration.cmake) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
102 else() |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
103 add_definitions(-DORTHANC_ENABLE_SSL=0) |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
104 endif() |
0 | 105 else() |
22
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
106 add_definitions( |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
107 -DORTHANC_ENABLE_SSL=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
108 -DORTHANC_ENABLE_CURL=0 |
b01d46e5a2b3
support for sandboxed environments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
109 ) |
0 | 110 endif() |
111 endif() | |
112 | |
113 add_definitions( | |
114 -DORTHANC_ENABLE_MD5=0 | |
115 -DORTHANC_ENABLE_BASE64=1 | |
13 | 116 -DORTHANC_ENABLE_PUGIXML=0 |
117 -DORTHANC_ENABLE_PKCS11=0 | |
0 | 118 ) |
119 | |
120 | |
121 ##################################################################### | |
122 ## Link the colormaps into the binaries | |
123 ##################################################################### | |
124 | |
125 EmbedResources( | |
126 COLORMAP_HOT ${ORTHANC_STONE_DIR}/Resources/Colormaps/hot.lut | |
127 COLORMAP_JET ${ORTHANC_STONE_DIR}/Resources/Colormaps/jet.lut | |
128 COLORMAP_RED ${ORTHANC_STONE_DIR}/Resources/Colormaps/red.lut | |
129 COLORMAP_GREEN ${ORTHANC_STONE_DIR}/Resources/Colormaps/green.lut | |
130 COLORMAP_BLUE ${ORTHANC_STONE_DIR}/Resources/Colormaps/blue.lut | |
131 ) | |
132 | |
133 | |
134 ##################################################################### | |
135 ## System-specific patches | |
136 ##################################################################### | |
137 | |
138 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND | |
139 NOT MSVC AND | |
140 ENABLE_SDL) | |
141 # This is necessary when compiling EXE for Windows using MinGW | |
142 link_libraries(mingw32) | |
143 endif() | |
144 | |
145 | |
146 | |
147 ##################################################################### | |
148 ## All the source files required to build Stone of Orthanc | |
149 ##################################################################### | |
150 | |
151 list(APPEND ORTHANC_STONE_SOURCES | |
152 ${ORTHANC_STONE_DIR}/Framework/Applications/BasicApplicationContext.cpp | |
153 ${ORTHANC_STONE_DIR}/Framework/Applications/IBasicApplication.cpp | |
154 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlBuffering.cpp | |
155 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlEngine.cpp | |
156 ${ORTHANC_STONE_DIR}/Framework/Applications/Sdl/SdlWindow.cpp | |
157 ${ORTHANC_STONE_DIR}/Framework/Layers/CircleMeasureTracker.cpp | |
158 ${ORTHANC_STONE_DIR}/Framework/Layers/ColorFrameRenderer.cpp | |
159 ${ORTHANC_STONE_DIR}/Framework/Layers/DicomStructureSetRendererFactory.cpp | |
160 ${ORTHANC_STONE_DIR}/Framework/Layers/FrameRenderer.cpp | |
161 ${ORTHANC_STONE_DIR}/Framework/Layers/GrayscaleFrameRenderer.cpp | |
162 ${ORTHANC_STONE_DIR}/Framework/Layers/LineLayerRenderer.cpp | |
163 ${ORTHANC_STONE_DIR}/Framework/Layers/LineMeasureTracker.cpp | |
164 ${ORTHANC_STONE_DIR}/Framework/Layers/RenderStyle.cpp | |
165 ${ORTHANC_STONE_DIR}/Framework/Layers/SeriesFrameRendererFactory.cpp | |
166 ${ORTHANC_STONE_DIR}/Framework/Layers/SiblingSliceLocationFactory.cpp | |
167 ${ORTHANC_STONE_DIR}/Framework/Layers/SingleFrameRendererFactory.cpp | |
168 ${ORTHANC_STONE_DIR}/Framework/Messaging/CurlOrthancConnection.cpp | |
169 ${ORTHANC_STONE_DIR}/Framework/Messaging/MessagingToolbox.cpp | |
170 ${ORTHANC_STONE_DIR}/Framework/Toolbox/BinarySemaphore.cpp | |
171 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomDataset.cpp | |
172 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomFrameConverter.cpp | |
173 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DicomStructureSet.cpp | |
174 ${ORTHANC_STONE_DIR}/Framework/Toolbox/DownloadStack.cpp | |
175 ${ORTHANC_STONE_DIR}/Framework/Toolbox/GeometryToolbox.cpp | |
176 ${ORTHANC_STONE_DIR}/Framework/Toolbox/OrthancSeriesLoader.cpp | |
177 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ParallelSlices.cpp | |
178 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ParallelSlicesCursor.cpp | |
179 ${ORTHANC_STONE_DIR}/Framework/Toolbox/SliceGeometry.cpp | |
180 ${ORTHANC_STONE_DIR}/Framework/Toolbox/ViewportGeometry.cpp | |
181 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoContext.cpp | |
182 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoFont.cpp | |
183 ${ORTHANC_STONE_DIR}/Framework/Viewport/CairoSurface.cpp | |
184 ${ORTHANC_STONE_DIR}/Framework/Viewport/WidgetViewport.cpp | |
185 ${ORTHANC_STONE_DIR}/Framework/Volumes/ImageBuffer3D.cpp | |
186 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImage.cpp | |
187 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImagePolicyBase.cpp | |
188 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImageProgressivePolicy.cpp | |
189 ${ORTHANC_STONE_DIR}/Framework/Volumes/VolumeImageSimplePolicy.cpp | |
190 ${ORTHANC_STONE_DIR}/Framework/Widgets/CairoWidget.cpp | |
191 ${ORTHANC_STONE_DIR}/Framework/Widgets/EmptyWidget.cpp | |
192 ${ORTHANC_STONE_DIR}/Framework/Widgets/LayeredSceneWidget.cpp | |
193 ${ORTHANC_STONE_DIR}/Framework/Widgets/LayoutWidget.cpp | |
194 ${ORTHANC_STONE_DIR}/Framework/Widgets/TestCairoWidget.cpp | |
195 ${ORTHANC_STONE_DIR}/Framework/Widgets/TestWorldSceneWidget.cpp | |
196 ${ORTHANC_STONE_DIR}/Framework/Widgets/WidgetBase.cpp | |
197 ${ORTHANC_STONE_DIR}/Framework/Widgets/WorldSceneWidget.cpp | |
198 | |
199 ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp | |
200 ${ORTHANC_ROOT}/Core/Compression/DeflateBaseCompressor.cpp | |
201 ${ORTHANC_ROOT}/Core/Compression/GzipCompressor.cpp | |
202 ${ORTHANC_ROOT}/Core/Enumerations.cpp | |
203 ${ORTHANC_ROOT}/Core/Images/Image.cpp | |
204 ${ORTHANC_ROOT}/Core/Images/ImageAccessor.cpp | |
205 ${ORTHANC_ROOT}/Core/Images/ImageBuffer.cpp | |
206 ${ORTHANC_ROOT}/Core/Images/ImageProcessing.cpp | |
207 ${ORTHANC_ROOT}/Core/Images/JpegErrorManager.cpp | |
208 ${ORTHANC_ROOT}/Core/Images/JpegReader.cpp | |
209 ${ORTHANC_ROOT}/Core/Images/PngReader.cpp | |
210 ${ORTHANC_ROOT}/Core/Logging.cpp | |
211 ${ORTHANC_ROOT}/Core/Toolbox.cpp | |
212 ${ORTHANC_ROOT}/Core/WebServiceParameters.cpp | |
213 ${ORTHANC_ROOT}/Resources/ThirdParty/base64/base64.cpp | |
214 | |
215 ${AUTOGENERATED_SOURCES} | |
216 | |
217 # Mandatory components | |
218 ${BOOST_SOURCES} | |
219 ${CAIRO_SOURCES} | |
220 ${JSONCPP_SOURCES} | |
221 ${PIXMAN_SOURCES} | |
222 ${ZLIB_SOURCES} | |
223 ${LIBPNG_SOURCES} | |
224 ${LIBJPEG_SOURCES} | |
225 | |
226 # Optional components | |
227 ${OPENSSL_SOURCES} | |
228 ${CURL_SOURCES} | |
229 ${SDL_SOURCES} | |
230 ) |