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