Mercurial > hg > orthanc
comparison CMakeLists.txt @ 930:27d256e0b458 mac
integration mainline -> mac
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 24 Jun 2014 16:47:18 +0200 |
parents | 882833632b1f 816dccaeb7cf |
children | 3fb427ac3f53 427a1f996b7b 394a19d44f9d e57e08ed510f 8811abd6aec9 |
comparison
equal
deleted
inserted
replaced
928:882833632b1f | 930:27d256e0b458 |
---|---|
16 SET(ENABLE_SSL ON CACHE BOOL "Include support for SSL") | 16 SET(ENABLE_SSL ON CACHE BOOL "Include support for SSL") |
17 SET(BUILD_CLIENT_LIBRARY ON CACHE BOOL "Build the client library") | 17 SET(BUILD_CLIENT_LIBRARY ON CACHE BOOL "Build the client library") |
18 SET(DCMTK_DICTIONARY_DIR "" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (only when using system version of DCMTK)") | 18 SET(DCMTK_DICTIONARY_DIR "" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (only when using system version of DCMTK)") |
19 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | 19 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") |
20 SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") | 20 SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") |
21 SET(ENABLE_JPEG ON CACHE BOOL "Enable JPEG decompression") | |
22 SET(ENABLE_JPEG_LOSSLESS ON CACHE BOOL "Enable JPEG-LS (Lossless) decompression") | |
21 | 23 |
22 # Advanced parameters to fine-tune linking against system libraries | 24 # Advanced parameters to fine-tune linking against system libraries |
23 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") | 25 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") |
24 SET(USE_SYSTEM_GOOGLE_LOG ON CACHE BOOL "Use the system version of Google Log") | 26 SET(USE_SYSTEM_GOOGLE_LOG ON CACHE BOOL "Use the system version of Google Log") |
25 SET(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test") | 27 SET(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test") |
42 include(CheckIncludeFileCXX) | 44 include(CheckIncludeFileCXX) |
43 include(CheckLibraryExists) | 45 include(CheckLibraryExists) |
44 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) | 46 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) |
45 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) | 47 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) |
46 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) | 48 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) |
49 include(${CMAKE_SOURCE_DIR}/Resources/CMake/VisualStudioPrecompiledHeaders.cmake) | |
47 | 50 |
48 set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}) | 51 set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}) |
49 | 52 |
50 | 53 |
51 | 54 |
52 | 55 |
53 ##################################################################### | 56 ##################################################################### |
54 ## Inclusion of third-party dependencies | 57 ## List of source files |
55 ##################################################################### | 58 ##################################################################### |
56 | 59 |
57 # Configuration of the standalone builds | 60 set(ORTHANC_CORE_SOURCES |
58 if (CMAKE_CROSSCOMPILING) | |
59 # Cross-compilation implies the standalone build | |
60 SET(STANDALONE_BUILD ON) | |
61 endif() | |
62 | |
63 # Prepare the third-party dependencies | |
64 SET(THIRD_PARTY_SOURCES | |
65 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
66 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp | |
67 ) | |
68 | |
69 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) | |
70 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) | |
71 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) | |
72 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) | |
73 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
74 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
75 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
77 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LuaConfiguration.cmake) | |
78 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
79 | |
80 | |
81 if (${ENABLE_SSL}) | |
82 add_definitions(-DORTHANC_SSL_ENABLED=1) | |
83 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) | |
84 else() | |
85 add_definitions(-DORTHANC_SSL_ENABLED=0) | |
86 endif() | |
87 | |
88 | |
89 | |
90 ##################################################################### | |
91 ## Autogeneration of files | |
92 ##################################################################### | |
93 | |
94 # Prepare the embedded files | |
95 set(EMBEDDED_FILES | |
96 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql | |
97 UPGRADE_DATABASE_3_TO_4 ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/Upgrade3To4.sql | |
98 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json | |
99 LUA_TOOLBOX ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Toolbox.lua | |
100 ) | |
101 | |
102 if (${STANDALONE_BUILD}) | |
103 # We embed all the resources in the binaries for standalone builds | |
104 add_definitions(-DORTHANC_STANDALONE=1) | |
105 EmbedResources( | |
106 ${EMBEDDED_FILES} | |
107 ORTHANC_EXPLORER ${CMAKE_CURRENT_SOURCE_DIR}/OrthancExplorer | |
108 ${DCMTK_DICTIONARIES} | |
109 ) | |
110 else() | |
111 add_definitions( | |
112 -DORTHANC_STANDALONE=0 | |
113 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" | |
114 ) | |
115 EmbedResources( | |
116 ${EMBEDDED_FILES} | |
117 ) | |
118 endif() | |
119 | |
120 | |
121 | |
122 ##################################################################### | |
123 ## Build the core of Orthanc | |
124 ##################################################################### | |
125 | |
126 add_definitions( | |
127 -DORTHANC_VERSION="${ORTHANC_VERSION}" | |
128 ) | |
129 | |
130 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH) | |
131 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
132 add_library(OpenSSL STATIC ${OPENSSL_SOURCES}) | |
133 endif() | |
134 | |
135 add_library(CoreLibrary | |
136 STATIC | |
137 ${AUTOGENERATED_SOURCES} | |
138 ${THIRD_PARTY_SOURCES} | |
139 ${CURL_SOURCES} | |
140 | |
141 Core/Cache/MemoryCache.cpp | 61 Core/Cache/MemoryCache.cpp |
142 Core/ChunkedBuffer.cpp | 62 Core/ChunkedBuffer.cpp |
143 Core/Compression/BufferCompressor.cpp | 63 Core/Compression/BufferCompressor.cpp |
144 Core/Compression/ZlibCompressor.cpp | 64 Core/Compression/ZlibCompressor.cpp |
145 Core/Compression/ZipWriter.cpp | 65 Core/Compression/ZipWriter.cpp |
146 Core/Compression/HierarchicalZipWriter.cpp | 66 Core/Compression/HierarchicalZipWriter.cpp |
147 Core/OrthancException.cpp | 67 Core/OrthancException.cpp |
148 Core/DicomFormat/DicomArray.cpp | 68 Core/DicomFormat/DicomArray.cpp |
149 Core/DicomFormat/DicomMap.cpp | 69 Core/DicomFormat/DicomMap.cpp |
150 Core/DicomFormat/DicomTag.cpp | 70 Core/DicomFormat/DicomTag.cpp |
71 Core/DicomFormat/DicomImageInformation.cpp | |
151 Core/DicomFormat/DicomIntegerPixelAccessor.cpp | 72 Core/DicomFormat/DicomIntegerPixelAccessor.cpp |
152 Core/DicomFormat/DicomInstanceHasher.cpp | 73 Core/DicomFormat/DicomInstanceHasher.cpp |
153 Core/Enumerations.cpp | 74 Core/Enumerations.cpp |
154 Core/FileStorage/FileStorage.cpp | 75 Core/FileStorage/FileStorage.cpp |
155 Core/FileStorage/StorageAccessor.cpp | 76 Core/FileStorage/StorageAccessor.cpp |
164 Core/HttpServer/HttpFileSender.cpp | 85 Core/HttpServer/HttpFileSender.cpp |
165 Core/HttpServer/FilesystemHttpSender.cpp | 86 Core/HttpServer/FilesystemHttpSender.cpp |
166 Core/RestApi/RestApiPath.cpp | 87 Core/RestApi/RestApiPath.cpp |
167 Core/RestApi/RestApiOutput.cpp | 88 Core/RestApi/RestApiOutput.cpp |
168 Core/RestApi/RestApi.cpp | 89 Core/RestApi/RestApi.cpp |
90 Core/MultiThreading/ArrayFilledByThreads.cpp | |
169 Core/MultiThreading/BagOfRunnablesBySteps.cpp | 91 Core/MultiThreading/BagOfRunnablesBySteps.cpp |
92 Core/MultiThreading/Mutex.cpp | |
93 Core/MultiThreading/ReaderWriterLock.cpp | |
170 Core/MultiThreading/SharedMessageQueue.cpp | 94 Core/MultiThreading/SharedMessageQueue.cpp |
171 Core/MultiThreading/ThreadedCommandProcessor.cpp | 95 Core/MultiThreading/ThreadedCommandProcessor.cpp |
172 Core/MultiThreading/ArrayFilledByThreads.cpp | 96 Core/ImageFormats/ImageAccessor.cpp |
173 Core/FileFormats/PngReader.cpp | 97 Core/ImageFormats/ImageBuffer.cpp |
174 Core/FileFormats/PngWriter.cpp | 98 Core/ImageFormats/ImageProcessing.cpp |
99 Core/ImageFormats/PngReader.cpp | |
100 Core/ImageFormats/PngWriter.cpp | |
175 Core/SQLite/Connection.cpp | 101 Core/SQLite/Connection.cpp |
176 Core/SQLite/FunctionContext.cpp | 102 Core/SQLite/FunctionContext.cpp |
177 Core/SQLite/Statement.cpp | 103 Core/SQLite/Statement.cpp |
178 Core/SQLite/StatementId.cpp | 104 Core/SQLite/StatementId.cpp |
179 Core/SQLite/StatementReference.cpp | 105 Core/SQLite/StatementReference.cpp |
186 OrthancCppClient/OrthancConnection.cpp | 112 OrthancCppClient/OrthancConnection.cpp |
187 OrthancCppClient/Study.cpp | 113 OrthancCppClient/Study.cpp |
188 OrthancCppClient/Series.cpp | 114 OrthancCppClient/Series.cpp |
189 OrthancCppClient/Instance.cpp | 115 OrthancCppClient/Instance.cpp |
190 OrthancCppClient/Patient.cpp | 116 OrthancCppClient/Patient.cpp |
191 ) | 117 ) |
192 | 118 |
193 | 119 |
194 ##################################################################### | 120 set(ORTHANC_SERVER_SOURCES |
195 ## Build the Orthanc server | |
196 ##################################################################### | |
197 | |
198 add_library(ServerLibrary | |
199 STATIC | |
200 ${DCMTK_SOURCES} | |
201 OrthancServer/DicomProtocol/DicomFindAnswers.cpp | 121 OrthancServer/DicomProtocol/DicomFindAnswers.cpp |
202 OrthancServer/DicomProtocol/DicomServer.cpp | 122 OrthancServer/DicomProtocol/DicomServer.cpp |
203 OrthancServer/DicomProtocol/DicomUserConnection.cpp | 123 OrthancServer/DicomProtocol/DicomUserConnection.cpp |
124 OrthancServer/DicomProtocol/RemoteModalityParameters.cpp | |
125 OrthancServer/DicomProtocol/ReusableDicomUserConnection.cpp | |
126 OrthancServer/DicomModification.cpp | |
204 OrthancServer/FromDcmtkBridge.cpp | 127 OrthancServer/FromDcmtkBridge.cpp |
128 OrthancServer/ParsedDicomFile.cpp | |
205 OrthancServer/Internals/CommandDispatcher.cpp | 129 OrthancServer/Internals/CommandDispatcher.cpp |
206 OrthancServer/Internals/FindScp.cpp | 130 OrthancServer/Internals/FindScp.cpp |
207 OrthancServer/Internals/MoveScp.cpp | 131 OrthancServer/Internals/MoveScp.cpp |
208 OrthancServer/Internals/StoreScp.cpp | 132 OrthancServer/Internals/StoreScp.cpp |
133 OrthancServer/Internals/DicomImageDecoder.cpp | |
209 OrthancServer/OrthancInitialization.cpp | 134 OrthancServer/OrthancInitialization.cpp |
135 OrthancServer/OrthancPeerParameters.cpp | |
210 OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp | 136 OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp |
211 OrthancServer/OrthancRestApi/OrthancRestApi.cpp | 137 OrthancServer/OrthancRestApi/OrthancRestApi.cpp |
212 OrthancServer/OrthancRestApi/OrthancRestArchive.cpp | 138 OrthancServer/OrthancRestApi/OrthancRestArchive.cpp |
213 OrthancServer/OrthancRestApi/OrthancRestChanges.cpp | 139 OrthancServer/OrthancRestApi/OrthancRestChanges.cpp |
214 OrthancServer/OrthancRestApi/OrthancRestModalities.cpp | 140 OrthancServer/OrthancRestApi/OrthancRestModalities.cpp |
222 OrthancServer/ServerToolbox.cpp | 148 OrthancServer/ServerToolbox.cpp |
223 OrthancServer/OrthancFindRequestHandler.cpp | 149 OrthancServer/OrthancFindRequestHandler.cpp |
224 OrthancServer/OrthancMoveRequestHandler.cpp | 150 OrthancServer/OrthancMoveRequestHandler.cpp |
225 ) | 151 ) |
226 | 152 |
227 # Ensure autogenerated code is built before building ServerLibrary | 153 |
228 add_dependencies(ServerLibrary CoreLibrary) | 154 set(ORTHANC_UNIT_TESTS_SOURCES |
229 | |
230 add_executable(Orthanc | |
231 OrthancServer/main.cpp | |
232 ) | |
233 | |
234 target_link_libraries(Orthanc ServerLibrary CoreLibrary) | |
235 | |
236 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
237 target_link_libraries(Orthanc OpenSSL) | |
238 endif() | |
239 | |
240 install( | |
241 TARGETS Orthanc | |
242 RUNTIME DESTINATION sbin | |
243 ) | |
244 | |
245 | |
246 | |
247 ##################################################################### | |
248 ## Build the unit tests | |
249 ##################################################################### | |
250 | |
251 if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) | |
252 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) | |
253 else() | |
254 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) | |
255 endif() | |
256 | |
257 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) | |
258 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) | |
259 add_executable(UnitTests | |
260 ${GTEST_SOURCES} | |
261 UnitTestsSources/DicomMap.cpp | 155 UnitTestsSources/DicomMap.cpp |
262 UnitTestsSources/FileStorage.cpp | 156 UnitTestsSources/FileStorage.cpp |
157 UnitTestsSources/FromDcmtk.cpp | |
263 UnitTestsSources/MemoryCache.cpp | 158 UnitTestsSources/MemoryCache.cpp |
264 UnitTestsSources/Png.cpp | 159 UnitTestsSources/Png.cpp |
265 UnitTestsSources/RestApi.cpp | 160 UnitTestsSources/RestApi.cpp |
266 UnitTestsSources/SQLite.cpp | 161 UnitTestsSources/SQLite.cpp |
267 UnitTestsSources/SQLiteChromium.cpp | 162 UnitTestsSources/SQLiteChromium.cpp |
269 UnitTestsSources/Versions.cpp | 164 UnitTestsSources/Versions.cpp |
270 UnitTestsSources/Zip.cpp | 165 UnitTestsSources/Zip.cpp |
271 UnitTestsSources/Lua.cpp | 166 UnitTestsSources/Lua.cpp |
272 UnitTestsSources/MultiThreading.cpp | 167 UnitTestsSources/MultiThreading.cpp |
273 UnitTestsSources/UnitTestsMain.cpp | 168 UnitTestsSources/UnitTestsMain.cpp |
274 ) | 169 UnitTestsSources/ImageProcessingTests.cpp |
275 target_link_libraries(UnitTests ServerLibrary CoreLibrary) | 170 UnitTestsSources/JpegLossless.cpp |
171 ) | |
172 | |
173 | |
174 | |
175 ##################################################################### | |
176 ## Inclusion of third-party dependencies | |
177 ##################################################################### | |
178 | |
179 # Configuration of the standalone builds | |
180 if (CMAKE_CROSSCOMPILING) | |
181 # Cross-compilation implies the standalone build | |
182 SET(STANDALONE_BUILD ON) | |
183 endif() | |
184 | |
185 # Prepare the third-party dependencies | |
186 SET(THIRD_PARTY_SOURCES | |
187 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
188 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp | |
189 ) | |
190 | |
191 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) | |
192 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) | |
193 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) | |
194 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) | |
195 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
196 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
197 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
198 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
199 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LuaConfiguration.cmake) | |
200 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
201 | |
202 | |
203 if (${ENABLE_SSL}) | |
204 add_definitions(-DORTHANC_SSL_ENABLED=1) | |
205 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) | |
206 else() | |
207 add_definitions(-DORTHANC_SSL_ENABLED=0) | |
208 endif() | |
209 | |
210 | |
211 if (ENABLE_JPEG) | |
212 add_definitions(-DORTHANC_JPEG_ENABLED=1) | |
213 else() | |
214 add_definitions(-DORTHANC_JPEG_ENABLED=0) | |
215 endif() | |
216 | |
217 | |
218 if (ENABLE_JPEG_LOSSLESS) | |
219 add_definitions(-DORTHANC_JPEG_LOSSLESS_ENABLED=1) | |
220 else() | |
221 add_definitions(-DORTHANC_JPEG_LOSSLESS_ENABLED=0) | |
222 endif() | |
223 | |
224 | |
225 | |
226 ##################################################################### | |
227 ## Autogeneration of files | |
228 ##################################################################### | |
229 | |
230 # Prepare the embedded files | |
231 set(EMBEDDED_FILES | |
232 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql | |
233 UPGRADE_DATABASE_3_TO_4 ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/Upgrade3To4.sql | |
234 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json | |
235 LUA_TOOLBOX ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Toolbox.lua | |
236 ) | |
237 | |
238 if (${STANDALONE_BUILD}) | |
239 # We embed all the resources in the binaries for standalone builds | |
240 add_definitions(-DORTHANC_STANDALONE=1) | |
241 EmbedResources( | |
242 ${EMBEDDED_FILES} | |
243 ORTHANC_EXPLORER ${CMAKE_CURRENT_SOURCE_DIR}/OrthancExplorer | |
244 ${DCMTK_DICTIONARIES} | |
245 ) | |
246 else() | |
247 add_definitions( | |
248 -DORTHANC_STANDALONE=0 | |
249 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" | |
250 ) | |
251 EmbedResources( | |
252 ${EMBEDDED_FILES} | |
253 ) | |
254 endif() | |
255 | |
256 | |
257 | |
258 ##################################################################### | |
259 ## Build the core of Orthanc | |
260 ##################################################################### | |
261 | |
262 # Setup precompiled headers for Microsoft Visual Studio | |
263 if (${MSVC}) | |
264 add_definitions(-DORTHANC_USE_PRECOMPILED_HEADERS=1) | |
265 | |
266 ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( | |
267 "PrecompiledHeaders.h" "Core/PrecompiledHeaders.cpp" ORTHANC_CORE_SOURCES) | |
268 | |
269 ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( | |
270 "PrecompiledHeadersServer.h" "OrthancServer/PrecompiledHeadersServer.cpp" ORTHANC_SERVER_SOURCES) | |
271 | |
272 ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( | |
273 "PrecompiledHeadersUnitTests.h" "UnitTestsSources/PrecompiledHeadersUnitTests.cpp" ORTHANC_UNIT_TESTS_SOURCES) | |
274 endif() | |
275 | |
276 | |
277 add_definitions( | |
278 -DORTHANC_VERSION="${ORTHANC_VERSION}" | |
279 ) | |
280 | |
281 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH) | |
282 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
283 add_library(OpenSSL STATIC ${OPENSSL_SOURCES}) | |
284 endif() | |
285 | |
286 add_library(CoreLibrary | |
287 STATIC | |
288 ${AUTOGENERATED_SOURCES} | |
289 ${THIRD_PARTY_SOURCES} | |
290 ${CURL_SOURCES} | |
291 ${ORTHANC_CORE_SOURCES} | |
292 ) | |
293 | |
294 | |
295 ##################################################################### | |
296 ## Build the Orthanc server | |
297 ##################################################################### | |
298 | |
299 add_library(ServerLibrary | |
300 STATIC | |
301 ${DCMTK_SOURCES} | |
302 ${ORTHANC_SERVER_SOURCES} | |
303 ) | |
304 | |
305 # Ensure autogenerated code is built before building ServerLibrary | |
306 add_dependencies(ServerLibrary CoreLibrary) | |
307 | |
308 add_executable(Orthanc | |
309 OrthancServer/main.cpp | |
310 ) | |
311 | |
312 target_link_libraries(Orthanc ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) | |
313 | |
314 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
315 target_link_libraries(Orthanc OpenSSL) | |
316 endif() | |
317 | |
318 install( | |
319 TARGETS Orthanc | |
320 RUNTIME DESTINATION sbin | |
321 ) | |
322 | |
323 | |
324 | |
325 ##################################################################### | |
326 ## Build the unit tests | |
327 ##################################################################### | |
328 | |
329 if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) | |
330 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) | |
331 else() | |
332 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) | |
333 endif() | |
334 | |
335 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) | |
336 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) | |
337 add_executable(UnitTests | |
338 ${GTEST_SOURCES} | |
339 ${ORTHANC_UNIT_TESTS_SOURCES} | |
340 ) | |
341 target_link_libraries(UnitTests ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) | |
276 | 342 |
277 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | 343 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) |
278 target_link_libraries(UnitTests OpenSSL) | 344 target_link_libraries(UnitTests OpenSSL) |
279 endif() | 345 endif() |
280 | 346 |
316 else() | 382 else() |
317 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES}) | 383 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES}) |
318 endif() | 384 endif() |
319 | 385 |
320 add_library(OrthancClient SHARED | 386 add_library(OrthancClient SHARED |
321 ${ORTHANC_ROOT}/Core/OrthancException.cpp | 387 ${ORTHANC_ROOT}/OrthancCppClient/OrthancCppClient.cpp |
322 ${ORTHANC_ROOT}/Core/Enumerations.cpp | |
323 ${ORTHANC_ROOT}/Core/Toolbox.cpp | |
324 ${ORTHANC_ROOT}/Core/HttpClient.cpp | |
325 ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp | |
326 ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp | |
327 ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp | |
328 ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp | |
329 ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp | |
330 ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp | |
331 ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp | |
332 ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp | |
333 ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp | |
334 ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/SharedLibrary.cpp | 388 ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/SharedLibrary.cpp |
335 ${ORTHANC_ROOT}/Resources/md5/md5.c | 389 ${ORTHANC_ROOT}/Resources/md5/md5.c |
336 ${ORTHANC_ROOT}/Resources/base64/base64.cpp | 390 ${ORTHANC_ROOT}/Resources/base64/base64.cpp |
337 ${ORTHANC_CPP_CLIENT_AUX} | 391 ${ORTHANC_CPP_CLIENT_AUX} |
338 ${THIRD_PARTY_SOURCES} | 392 ${THIRD_PARTY_SOURCES} |
339 ${CURL_SOURCES} | 393 ${CURL_SOURCES} |
340 ) | 394 ${GOOGLE_LOG_SOURCES} |
341 | 395 ) |
342 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") | 396 |
397 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR | |
398 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD") | |
343 set_target_properties(OrthancClient | 399 set_target_properties(OrthancClient |
344 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/Laaw/VersionScript.map" | 400 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/Laaw/VersionScript.map" |
345 ) | 401 ) |
346 target_link_libraries(OrthancClient pthread) | 402 target_link_libraries(OrthancClient pthread) |
347 | 403 |