comparison CMakeLists.txt @ 759:8cfc6119a5bd dicom-rt

integration mainline -> dicom-rt
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 16 Apr 2014 16:04:55 +0200
parents b82292ba2083 40d09221077a
children 12a3f2eaa99a
comparison
equal deleted inserted replaced
605:b82292ba2083 759:8cfc6119a5bd
9 ##################################################################### 9 #####################################################################
10 ## CMake parameters tunable at the command line 10 ## CMake parameters tunable at the command line
11 ##################################################################### 11 #####################################################################
12 12
13 # Parameters of the build 13 # Parameters of the build
14 SET(STATIC_BUILD ON CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") 14 SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
15 SET(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)") 15 SET(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)")
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_UNIT_TESTS ON CACHE BOOL "Build the unit tests")
18 SET(BUILD_CLIENT_LIBRARY ON CACHE BOOL "Build the client library") 17 SET(BUILD_CLIENT_LIBRARY ON CACHE BOOL "Build the client library")
19 SET(DCMTK_DICTIONARY_DIR "/usr/share/dcmtk" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (ignored in standalone builds)") 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")
20 SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests")
20 21
21 # Advanced parameters to fine-tune linking against system libraries 22 # Advanced parameters to fine-tune linking against system libraries
22 SET(USE_DYNAMIC_JSONCPP OFF CACHE BOOL "Use the dynamic version of JsonCpp") 23 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp")
23 SET(USE_DYNAMIC_GOOGLE_LOG ON CACHE BOOL "Use the dynamic version of Google Log") 24 SET(USE_SYSTEM_GOOGLE_LOG ON CACHE BOOL "Use the system version of Google Log")
24 SET(USE_DYNAMIC_GOOGLE_TEST ON CACHE BOOL "Use the dynamic version of Google Test") 25 SET(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test")
25 SET(USE_DYNAMIC_SQLITE ON CACHE BOOL "Use the dynamic version of SQLite") 26 SET(USE_SYSTEM_SQLITE ON CACHE BOOL "Use the system version of SQLite")
26 SET(USE_DYNAMIC_MONGOOSE OFF CACHE BOOL "Use the dynamic version of Mongoose") 27 SET(USE_SYSTEM_MONGOOSE ON CACHE BOOL "Use the system version of Mongoose")
27 SET(USE_DYNAMIC_LUA OFF CACHE BOOL "Use the dynamic version of Lua") 28 SET(USE_SYSTEM_LUA ON CACHE BOOL "Use the system version of Lua")
28 SET(DEBIAN_USE_GTEST_SOURCE_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)") 29 SET(USE_SYSTEM_DCMTK ON CACHE BOOL "Use the system version of DCMTK")
29 30 SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost")
30 mark_as_advanced(USE_DYNAMIC_JSONCPP) 31 SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of LibPng")
31 mark_as_advanced(USE_DYNAMIC_GOOGLE_LOG) 32 SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl")
32 mark_as_advanced(USE_DYNAMIC_GOOGLE_TEST) 33 SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL")
33 mark_as_advanced(USE_DYNAMIC_SQLITE) 34 SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib")
34 mark_as_advanced(DEBIAN_USE_GTEST_SOURCE_PACKAGE) 35
36 # Distribution-specific settings
37 SET(USE_GTEST_DEBIAN_SOURCE_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)")
38 mark_as_advanced(USE_GTEST_DEBIAN_SOURCE_PACKAGE)
35 39
36 # Some basic inclusions 40 # Some basic inclusions
37 include(CheckIncludeFiles) 41 include(CheckIncludeFiles)
38 include(CheckIncludeFileCXX) 42 include(CheckIncludeFileCXX)
39 include(CheckLibraryExists) 43 include(CheckLibraryExists)
61 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c 65 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c
62 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp 66 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp
63 ) 67 )
64 68
65 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) 69 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake)
66
67 if (${ENABLE_SSL})
68 add_definitions(-DORTHANC_SSL_ENABLED=1)
69 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake)
70 else()
71 add_definitions(-DORTHANC_SSL_ENABLED=0)
72 endif()
73
74 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) 70 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake)
75 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) 71 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake)
76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) 72 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake)
77 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) 73 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake)
78 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) 74 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake)
79 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) 75 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake)
80 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake)
81 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) 76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake)
82 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LuaConfiguration.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()
83 87
84 88
85 89
86 ##################################################################### 90 #####################################################################
87 ## Autogeneration of files 91 ## Autogeneration of files
88 ##################################################################### 92 #####################################################################
89 93
90 # Prepare the embedded files 94 # Prepare the embedded files
91 set(EMBEDDED_FILES 95 set(EMBEDDED_FILES
92 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql 96 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql
97 UPGRADE_DATABASE_3_TO_4 ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/Upgrade3To4.sql
93 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json 98 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json
94 LUA_TOOLBOX ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Toolbox.lua 99 LUA_TOOLBOX ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Toolbox.lua
95 ) 100 )
96 101
97 if (${STANDALONE_BUILD}) 102 if (${STANDALONE_BUILD})
200 OrthancServer/Internals/CommandDispatcher.cpp 205 OrthancServer/Internals/CommandDispatcher.cpp
201 OrthancServer/Internals/FindScp.cpp 206 OrthancServer/Internals/FindScp.cpp
202 OrthancServer/Internals/MoveScp.cpp 207 OrthancServer/Internals/MoveScp.cpp
203 OrthancServer/Internals/StoreScp.cpp 208 OrthancServer/Internals/StoreScp.cpp
204 OrthancServer/OrthancInitialization.cpp 209 OrthancServer/OrthancInitialization.cpp
205 OrthancServer/OrthancRestApi.cpp 210 OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp
211 OrthancServer/OrthancRestApi/OrthancRestApi.cpp
212 OrthancServer/OrthancRestApi/OrthancRestArchive.cpp
213 OrthancServer/OrthancRestApi/OrthancRestChanges.cpp
214 OrthancServer/OrthancRestApi/OrthancRestModalities.cpp
215 OrthancServer/OrthancRestApi/OrthancRestResources.cpp
216 OrthancServer/OrthancRestApi/OrthancRestSystem.cpp
206 OrthancServer/ServerIndex.cpp 217 OrthancServer/ServerIndex.cpp
207 OrthancServer/ToDcmtkBridge.cpp 218 OrthancServer/ToDcmtkBridge.cpp
208 OrthancServer/DatabaseWrapper.cpp 219 OrthancServer/DatabaseWrapper.cpp
209 OrthancServer/ServerContext.cpp 220 OrthancServer/ServerContext.cpp
210 OrthancServer/ServerEnumerations.cpp 221 OrthancServer/ServerEnumerations.cpp
211 OrthancServer/ServerToolbox.cpp 222 OrthancServer/ServerToolbox.cpp
212 223 OrthancServer/OrthancFindRequestHandler.cpp
213 OrthancServer/RadiotherapyRestApi.cpp 224 OrthancServer/OrthancMoveRequestHandler.cpp
225
226 #OrthancServer/RadiotherapyRestApi.cpp
214 ) 227 )
215 228
216 # Ensure autogenerated code is built before building ServerLibrary 229 # Ensure autogenerated code is built before building ServerLibrary
217 add_dependencies(ServerLibrary CoreLibrary) 230 add_dependencies(ServerLibrary CoreLibrary)
218 231
226 target_link_libraries(Orthanc OpenSSL) 239 target_link_libraries(Orthanc OpenSSL)
227 endif() 240 endif()
228 241
229 install( 242 install(
230 TARGETS Orthanc 243 TARGETS Orthanc
231 RUNTIME DESTINATION bin 244 RUNTIME DESTINATION sbin
232 ) 245 )
233 246
234 247
235 248
236 ##################################################################### 249 #####################################################################
237 ## Build the unit tests if required 250 ## Build the unit tests
238 ##################################################################### 251 #####################################################################
239 252
240 if (BUILD_UNIT_TESTS) 253 if (UNIT_TESTS_WITH_HTTP_CONNEXIONS)
241 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) 254 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1)
242 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) 255 else()
243 add_executable(UnitTests 256 add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0)
244 ${GTEST_SOURCES} 257 endif()
245 UnitTests/FileStorage.cpp 258
246 UnitTests/MemoryCache.cpp 259 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1)
247 UnitTests/Png.cpp 260 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake)
248 UnitTests/RestApi.cpp 261 add_executable(UnitTests
249 UnitTests/SQLite.cpp 262 ${GTEST_SOURCES}
250 UnitTests/SQLiteChromium.cpp 263 UnitTestsSources/DicomMap.cpp
251 UnitTests/ServerIndex.cpp 264 UnitTestsSources/FileStorage.cpp
252 UnitTests/Versions.cpp 265 UnitTestsSources/MemoryCache.cpp
253 UnitTests/Zip.cpp 266 UnitTestsSources/Png.cpp
254 UnitTests/Lua.cpp 267 UnitTestsSources/RestApi.cpp
255 UnitTests/main.cpp 268 UnitTestsSources/SQLite.cpp
256 ) 269 UnitTestsSources/SQLiteChromium.cpp
257 target_link_libraries(UnitTests ServerLibrary CoreLibrary) 270 UnitTestsSources/ServerIndexTests.cpp
258 271 UnitTestsSources/Versions.cpp
259 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) 272 UnitTestsSources/Zip.cpp
260 target_link_libraries(UnitTests OpenSSL) 273 UnitTestsSources/Lua.cpp
261 endif() 274 UnitTestsSources/MultiThreading.cpp
275 UnitTestsSources/UnitTestsMain.cpp
276 )
277 target_link_libraries(UnitTests ServerLibrary CoreLibrary)
278
279 if (${OPENSSL_SOURCES_LENGTH} GREATER 0)
280 target_link_libraries(UnitTests OpenSSL)
262 endif() 281 endif()
263 282
264 283
265 284
266 ##################################################################### 285 #####################################################################