Mercurial > hg > orthanc
annotate CMakeLists.txt @ 277:58f969933720
merge with Orthanc-0.3.1
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sun, 09 Dec 2012 15:03:17 +0100 |
parents | f1fb9d1aa444 3b3525dee661 |
children | e5402c368b21 915ed24547ea |
rev | line source |
---|---|
12 | 1 cmake_minimum_required(VERSION 2.8) |
2 | |
57 | 3 project(Orthanc) |
134 | 4 |
135 | 5 # Version of the build, should always be "mainline" except in release branches |
6 add_definitions( | |
260 | 7 -DORTHANC_VERSION="mainline" |
135 | 8 ) |
9 | |
134 | 10 # Parameters of the build |
11 SET(STATIC_BUILD ON CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
12 SET(STANDALONE_BUILD OFF CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)") | |
13 SET(ENABLE_SSL ON CACHE BOOL "Include support for SSL") | |
14 SET(BUILD_UNIT_TESTS ON CACHE BOOL "Build the unit tests") | |
135 | 15 |
16 # Advanced parameters (for Debian packaging) | |
134 | 17 SET(USE_DYNAMIC_JSONCPP OFF CACHE BOOL "Use the dynamic version of JsonCpp (only for Debian sid)") |
18 SET(USE_DYNAMIC_GOOGLE_LOG ON CACHE BOOL "Use the dynamic version of Google Log") | |
19 SET(USE_DYNAMIC_GOOGLE_TEST ON CACHE BOOL "Use the dynamic version of Google Test (not for Debian sid)") | |
147 | 20 SET(USE_DYNAMIC_SQLITE ON CACHE BOOL "Use the dynamic version of SQLite") |
135 | 21 SET(DEBIAN_FORCE_HARDENING OFF CACHE BOOL "Force the injection of Debian hardening flags (unrecommended)") |
157
a63fb54819d7
gtest on debian sid
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
149
diff
changeset
|
22 SET(DEBIAN_USE_GTEST_SOURCE_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (only for Debian sid)") |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
23 SET(ONLY_CORE_LIBRARY OFF CACHE BOOL "Only build the core library") |
134 | 24 |
135 | 25 mark_as_advanced(USE_DYNAMIC_JSONCPP) |
26 mark_as_advanced(USE_DYNAMIC_GOOGLE_LOG) | |
27 mark_as_advanced(USE_DYNAMIC_GOOGLE_TEST) | |
147 | 28 mark_as_advanced(USE_DYNAMIC_SQLITE) |
135 | 29 mark_as_advanced(DEBIAN_FORCE_HARDENING) |
30 mark_as_advanced(DEBIAN_USE_STATIC_GOOGLE_TEST) | |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
31 mark_as_advanced(ONLY_CORE_LIBRARY) |
134 | 32 |
33 # Some basic inclusions | |
12 | 34 include(CheckIncludeFiles) |
101 | 35 include(CheckIncludeFileCXX) |
134 | 36 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) |
37 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) | |
38 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) | |
133 | 39 |
134 | 40 # Configuration of the standalone builds |
19 | 41 if (${CMAKE_CROSSCOMPILING}) |
134 | 42 # Cross-compilation implies the standalone build |
19 | 43 SET(STANDALONE_BUILD ON) |
44 endif() | |
45 | |
134 | 46 if (${STANDALONE_BUILD}) |
47 # We embed all the resources in the binaries for standalone builds | |
48 add_definitions(-DORTHANC_STANDALONE=1) | |
49 EmbedResources( | |
50 PREPARE_DATABASE OrthancServer/PrepareDatabase.sql | |
51 ORTHANC_EXPLORER OrthancExplorer | |
175
662af781a227
sample config file from command line
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
170
diff
changeset
|
52 CONFIGURATION_SAMPLE Resources/Configuration.json |
134 | 53 ) |
12 | 54 else() |
134 | 55 add_definitions( |
56 -DORTHANC_STANDALONE=0 | |
57 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" | |
58 ) | |
59 EmbedResources( | |
60 PREPARE_DATABASE OrthancServer/PrepareDatabase.sql | |
175
662af781a227
sample config file from command line
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
170
diff
changeset
|
61 CONFIGURATION_SAMPLE Resources/Configuration.json |
134 | 62 ) |
12 | 63 endif() |
64 | |
65 | |
134 | 66 # Prepare the third-party dependencies |
22 | 67 SET(THIRD_PARTY_SOURCES |
68 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
24 | 69 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp |
177 | 70 ${CMAKE_SOURCE_DIR}/Resources/sha1/sha1.cpp |
22 | 71 ) |
26 | 72 |
102
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
73 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) |
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
74 |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
75 if (${ENABLE_SSL}) |
57 | 76 add_definitions(-DORTHANC_SSL_ENABLED=1) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
77 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
78 else() |
57 | 79 add_definitions(-DORTHANC_SSL_ENABLED=0) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
80 endif() |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
81 |
12 | 82 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
83 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
84 if(NOT ONLY_CORE_LIBRARY) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
85 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
86 endif() |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
87 |
12 | 88 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) |
89 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
90 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
91 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
92 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
93 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
94 | |
95 | |
134 | 96 # The main instructions to build the Orthanc binaries |
12 | 97 add_library(CoreLibrary |
98 STATIC | |
99 ${AUTOGENERATED_SOURCES} | |
100 ${THIRD_PARTY_SOURCES} | |
101 | |
102 Core/ChunkedBuffer.cpp | |
103 Core/Compression/BufferCompressor.cpp | |
104 Core/Compression/ZlibCompressor.cpp | |
81 | 105 Core/Compression/ZipWriter.cpp |
247
c9b3ba0fd140
path management in zip files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
106 Core/Compression/HierarchicalZipWriter.cpp |
57 | 107 Core/OrthancException.cpp |
12 | 108 Core/DicomFormat/DicomArray.cpp |
109 Core/DicomFormat/DicomMap.cpp | |
110 Core/DicomFormat/DicomTag.cpp | |
79 | 111 Core/DicomFormat/DicomIntegerPixelAccessor.cpp |
178 | 112 Core/DicomFormat/DicomInstanceHasher.cpp |
234 | 113 Core/FileStorage/FileStorage.cpp |
221
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
114 Core/FileStorage/StorageAccessor.cpp |
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
115 Core/FileStorage/CompressedFileStorageAccessor.cpp |
232
5368bbe813cf
refactoring of attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
116 Core/FileStorage/FileStorageAccessor.cpp |
12 | 117 Core/HttpServer/EmbeddedResourceHttpHandler.cpp |
118 Core/HttpServer/FilesystemHttpHandler.cpp | |
119 Core/HttpServer/HttpHandler.cpp | |
120 Core/HttpServer/HttpOutput.cpp | |
121 Core/HttpServer/MongooseServer.cpp | |
208 | 122 Core/HttpServer/HttpFileSender.cpp |
123 Core/HttpServer/FilesystemHttpSender.cpp | |
209
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
124 Core/RestApi/RestApiPath.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
125 Core/RestApi/RestApiOutput.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
126 Core/RestApi/RestApi.cpp |
12 | 127 Core/MultiThreading/BagOfRunnablesBySteps.cpp |
128 Core/PngWriter.cpp | |
129 Core/SQLite/Connection.cpp | |
130 Core/SQLite/FunctionContext.cpp | |
131 Core/SQLite/Statement.cpp | |
132 Core/SQLite/StatementId.cpp | |
133 Core/SQLite/StatementReference.cpp | |
134 Core/SQLite/Transaction.cpp | |
135 Core/Toolbox.cpp | |
136 Core/Uuid.cpp | |
137 | |
57 | 138 OrthancCppClient/HttpClient.cpp |
139 OrthancCppClient/HttpException.cpp | |
12 | 140 ) |
141 | |
135 | 142 |
12 | 143 |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
144 if(NOT ONLY_CORE_LIBRARY) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
145 add_library(ServerLibrary |
263 | 146 ${DCMTK_SOURCES} |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
147 OrthancServer/DicomProtocol/DicomFindAnswers.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
148 OrthancServer/DicomProtocol/DicomServer.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
149 OrthancServer/DicomProtocol/DicomUserConnection.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
150 OrthancServer/FromDcmtkBridge.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
151 OrthancServer/Internals/CommandDispatcher.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
152 OrthancServer/Internals/FindScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
153 OrthancServer/Internals/MoveScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
154 OrthancServer/Internals/StoreScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
155 OrthancServer/OrthancInitialization.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
156 OrthancServer/OrthancRestApi.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
157 OrthancServer/ServerIndex.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
158 OrthancServer/ToDcmtkBridge.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
159 OrthancServer/DatabaseWrapper.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
160 OrthancServer/ServerContext.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
161 OrthancServer/ServerEnumerations.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
162 OrthancServer/ServerToolbox.cpp |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
163 ) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
164 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
165 # Ensure autogenerated code is built before building ServerLibrary |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
166 add_dependencies(ServerLibrary CoreLibrary) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
167 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
168 add_executable(Orthanc |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
169 OrthancServer/main.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
170 ) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
171 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
172 target_link_libraries(Orthanc ServerLibrary CoreLibrary) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
173 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
174 install( |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
175 TARGETS Orthanc |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
176 RUNTIME DESTINATION bin |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
177 ) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
178 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
179 # Build the unit tests if required |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
180 if (BUILD_UNIT_TESTS) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
181 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
182 add_executable(UnitTests |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
183 ${GTEST_SOURCES} |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
184 UnitTests/MessageWithDestination.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
185 UnitTests/RestApi.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
186 UnitTests/SQLite.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
187 UnitTests/SQLiteChromium.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
188 UnitTests/ServerIndex.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
189 UnitTests/Versions.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
190 UnitTests/Zip.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
191 UnitTests/FileStorage.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
192 UnitTests/main.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
193 ) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
194 target_link_libraries(UnitTests ServerLibrary CoreLibrary) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
195 endif() |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
196 endif() |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
197 |
12 | 198 |
134 | 199 # Generate the Doxygen documentation if Doxygen is present |
12 | 200 find_package(Doxygen) |
201 if (DOXYGEN_FOUND) | |
202 configure_file( | |
57 | 203 ${CMAKE_SOURCE_DIR}/Resources/Orthanc.doxygen |
204 ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen | |
12 | 205 @ONLY) |
206 add_custom_target(doc | |
57 | 207 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen |
12 | 208 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
209 COMMENT "Generating API documentation with Doxygen" VERBATIM | |
210 ) | |
149 | 211 else() |
212 message("Doxygen not found. The documentation will not be built.") | |
134 | 213 endif() |
149 | 214 |