Mercurial > hg > orthanc
annotate CMakeLists.txt @ 543:fe796b053863 laaw
conditional
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 13 Sep 2013 11:10:58 +0200 |
parents | eaca3d38b2aa |
children | 0e510ea3de31 |
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( | |
491
c56e9480183a
fix mainline version
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
489
diff
changeset
|
7 -DORTHANC_VERSION="mainline" |
135 | 8 ) |
9 | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
10 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
11 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
12 ## CMake parameters tunable at the command line |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
13 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
14 |
134 | 15 # Parameters of the build |
16 SET(STATIC_BUILD ON CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
447
e0c398d4721e
standalone build is the default
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
423
diff
changeset
|
17 SET(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)") |
134 | 18 SET(ENABLE_SSL ON CACHE BOOL "Include support for SSL") |
19 SET(BUILD_UNIT_TESTS ON CACHE BOOL "Build the unit tests") | |
543 | 20 SET(BUILD_CLIENT_LIBRARY ON CACHE BOOL "Build the client library") |
494
012b63028085
CMake parameter for the location of DCMTK dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
491
diff
changeset
|
21 SET(DCMTK_DICTIONARY_DIR "/usr/share/dcmtk" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (ignored in standalone builds)") |
135 | 22 |
23 # Advanced parameters (for Debian packaging) | |
134 | 24 SET(USE_DYNAMIC_JSONCPP OFF CACHE BOOL "Use the dynamic version of JsonCpp (only for Debian sid)") |
25 SET(USE_DYNAMIC_GOOGLE_LOG ON CACHE BOOL "Use the dynamic version of Google Log") | |
26 SET(USE_DYNAMIC_GOOGLE_TEST ON CACHE BOOL "Use the dynamic version of Google Test (not for Debian sid)") | |
147 | 27 SET(USE_DYNAMIC_SQLITE ON CACHE BOOL "Use the dynamic version of SQLite") |
389
9aa8ecbeeeb9
dynamically linking against Mongoose
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
383
diff
changeset
|
28 SET(USE_DYNAMIC_MONGOOSE OFF CACHE BOOL "Use the dynamic version of Mongoose") |
382 | 29 SET(USE_DYNAMIC_LUA OFF CACHE BOOL "Use the dynamic version of Lua") |
135 | 30 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
|
31 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
|
32 SET(ONLY_CORE_LIBRARY OFF CACHE BOOL "Only build the core library") |
134 | 33 |
135 | 34 mark_as_advanced(USE_DYNAMIC_JSONCPP) |
35 mark_as_advanced(USE_DYNAMIC_GOOGLE_LOG) | |
36 mark_as_advanced(USE_DYNAMIC_GOOGLE_TEST) | |
147 | 37 mark_as_advanced(USE_DYNAMIC_SQLITE) |
135 | 38 mark_as_advanced(DEBIAN_FORCE_HARDENING) |
39 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
|
40 mark_as_advanced(ONLY_CORE_LIBRARY) |
134 | 41 |
42 # Some basic inclusions | |
12 | 43 include(CheckIncludeFiles) |
101 | 44 include(CheckIncludeFileCXX) |
389
9aa8ecbeeeb9
dynamically linking against Mongoose
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
383
diff
changeset
|
45 include(CheckLibraryExists) |
134 | 46 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) |
47 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) | |
48 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) | |
133 | 49 |
506
6e4bd06c17c5
the wrapper is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
496
diff
changeset
|
50 set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}) |
6e4bd06c17c5
the wrapper is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
496
diff
changeset
|
51 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
52 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
53 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
54 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
55 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
56 ## Inclusion of third-party dependencies |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
57 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
58 |
134 | 59 # Configuration of the standalone builds |
19 | 60 if (${CMAKE_CROSSCOMPILING}) |
134 | 61 # Cross-compilation implies the standalone build |
19 | 62 SET(STANDALONE_BUILD ON) |
63 endif() | |
64 | |
134 | 65 # Prepare the third-party dependencies |
22 | 66 SET(THIRD_PARTY_SOURCES |
67 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
24 | 68 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp |
177 | 69 ${CMAKE_SOURCE_DIR}/Resources/sha1/sha1.cpp |
22 | 70 ) |
26 | 71 |
102
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
72 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) |
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
73 |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
74 if (${ENABLE_SSL}) |
57 | 75 add_definitions(-DORTHANC_SSL_ENABLED=1) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
77 else() |
57 | 78 add_definitions(-DORTHANC_SSL_ENABLED=0) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
79 endif() |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
80 |
12 | 81 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
|
82 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
83 if(NOT ONLY_CORE_LIBRARY) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
84 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
|
85 endif() |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
86 |
12 | 87 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) |
88 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
89 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
90 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
91 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
92 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
382 | 93 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LuaConfiguration.cmake) |
12 | 94 |
95 | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
96 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
97 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
98 ## Autogeneration of files |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
99 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
100 |
291
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
101 # Prepare the embedded files |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
102 set(EMBEDDED_FILES |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
103 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
104 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json |
384 | 105 LUA_TOOLBOX ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Toolbox.lua |
291
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
106 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
107 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
108 if (${STANDALONE_BUILD}) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
109 # We embed all the resources in the binaries for standalone builds |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
110 add_definitions(-DORTHANC_STANDALONE=1) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
111 EmbedResources( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
112 ${EMBEDDED_FILES} |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
113 ORTHANC_EXPLORER ${CMAKE_CURRENT_SOURCE_DIR}/OrthancExplorer |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
114 ${DCMTK_DICTIONARIES} |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
115 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
116 else() |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
117 add_definitions( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
118 -DORTHANC_STANDALONE=0 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
119 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
120 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
121 EmbedResources( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
122 ${EMBEDDED_FILES} |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
123 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
124 endif() |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
125 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
126 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
127 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
128 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
129 ## Build the core of Orthanc |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
130 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
131 |
520 | 132 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH) |
133 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
134 add_library(OpenSSL STATIC ${OPENSSL_SOURCES}) | |
135 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
136 |
12 | 137 add_library(CoreLibrary |
138 STATIC | |
139 ${AUTOGENERATED_SOURCES} | |
140 ${THIRD_PARTY_SOURCES} | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
141 ${CURL_SOURCES} |
12 | 142 |
284
06aa7b7b6723
implementation of a single-threaded cache mechanism
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
283
diff
changeset
|
143 Core/Cache/MemoryCache.cpp |
12 | 144 Core/ChunkedBuffer.cpp |
145 Core/Compression/BufferCompressor.cpp | |
146 Core/Compression/ZlibCompressor.cpp | |
81 | 147 Core/Compression/ZipWriter.cpp |
247
c9b3ba0fd140
path management in zip files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
148 Core/Compression/HierarchicalZipWriter.cpp |
57 | 149 Core/OrthancException.cpp |
12 | 150 Core/DicomFormat/DicomArray.cpp |
151 Core/DicomFormat/DicomMap.cpp | |
152 Core/DicomFormat/DicomTag.cpp | |
79 | 153 Core/DicomFormat/DicomIntegerPixelAccessor.cpp |
178 | 154 Core/DicomFormat/DicomInstanceHasher.cpp |
477 | 155 Core/Enumerations.cpp |
234 | 156 Core/FileStorage/FileStorage.cpp |
221
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
157 Core/FileStorage/StorageAccessor.cpp |
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
158 Core/FileStorage/CompressedFileStorageAccessor.cpp |
232
5368bbe813cf
refactoring of attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
159 Core/FileStorage/FileStorageAccessor.cpp |
476 | 160 Core/HttpClient.cpp |
12 | 161 Core/HttpServer/EmbeddedResourceHttpHandler.cpp |
162 Core/HttpServer/FilesystemHttpHandler.cpp | |
163 Core/HttpServer/HttpHandler.cpp | |
164 Core/HttpServer/HttpOutput.cpp | |
165 Core/HttpServer/MongooseServer.cpp | |
208 | 166 Core/HttpServer/HttpFileSender.cpp |
167 Core/HttpServer/FilesystemHttpSender.cpp | |
209
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
168 Core/RestApi/RestApiPath.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
169 Core/RestApi/RestApiOutput.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
170 Core/RestApi/RestApi.cpp |
12 | 171 Core/MultiThreading/BagOfRunnablesBySteps.cpp |
450 | 172 Core/MultiThreading/SharedMessageQueue.cpp |
458
84966299c8f8
ThreadedCommandProcessor
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
455
diff
changeset
|
173 Core/MultiThreading/ThreadedCommandProcessor.cpp |
479
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
174 Core/MultiThreading/ArrayFilledByThreads.cpp |
455 | 175 Core/FileFormats/PngReader.cpp |
454 | 176 Core/FileFormats/PngWriter.cpp |
12 | 177 Core/SQLite/Connection.cpp |
178 Core/SQLite/FunctionContext.cpp | |
179 Core/SQLite/Statement.cpp | |
180 Core/SQLite/StatementId.cpp | |
181 Core/SQLite/StatementReference.cpp | |
182 Core/SQLite/Transaction.cpp | |
183 Core/Toolbox.cpp | |
184 Core/Uuid.cpp | |
386 | 185 Core/Lua/LuaContext.cpp |
186 Core/Lua/LuaFunctionCall.cpp | |
479
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
187 |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
188 OrthancCppClient/OrthancConnection.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
189 OrthancCppClient/Study.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
190 OrthancCppClient/Series.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
191 OrthancCppClient/Instance.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
192 OrthancCppClient/Patient.cpp |
12 | 193 ) |
194 | |
135 | 195 |
12 | 196 |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
197 if(NOT ONLY_CORE_LIBRARY) |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
198 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
199 ## Build the Orthanc server |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
200 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
201 |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
202 add_library(ServerLibrary |
301 | 203 STATIC |
263 | 204 ${DCMTK_SOURCES} |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
205 OrthancServer/DicomProtocol/DicomFindAnswers.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
206 OrthancServer/DicomProtocol/DicomServer.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
207 OrthancServer/DicomProtocol/DicomUserConnection.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
208 OrthancServer/FromDcmtkBridge.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
209 OrthancServer/Internals/CommandDispatcher.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
210 OrthancServer/Internals/FindScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
211 OrthancServer/Internals/MoveScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
212 OrthancServer/Internals/StoreScp.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
213 OrthancServer/OrthancInitialization.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
214 OrthancServer/OrthancRestApi.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
215 OrthancServer/ServerIndex.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
216 OrthancServer/ToDcmtkBridge.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
217 OrthancServer/DatabaseWrapper.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
218 OrthancServer/ServerContext.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
219 OrthancServer/ServerEnumerations.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
220 OrthancServer/ServerToolbox.cpp |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
221 ) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
222 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
223 # 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
|
224 add_dependencies(ServerLibrary CoreLibrary) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
225 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
226 add_executable(Orthanc |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
227 OrthancServer/main.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
228 ) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
229 |
520 | 230 target_link_libraries(Orthanc ServerLibrary CoreLibrary) |
231 | |
232 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
233 target_link_libraries(Orthanc OpenSSL) | |
234 endif() | |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
235 |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
236 install( |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
237 TARGETS Orthanc |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
238 RUNTIME DESTINATION bin |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
239 ) |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
240 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
241 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
242 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
243 ## Build the unit tests if required |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
244 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
245 |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
246 if (BUILD_UNIT_TESTS) |
265 | 247 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
248 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
|
249 add_executable(UnitTests |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
250 ${GTEST_SOURCES} |
368
80011cd589e6
support of rgb images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
362
diff
changeset
|
251 UnitTests/FileStorage.cpp |
80011cd589e6
support of rgb images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
362
diff
changeset
|
252 UnitTests/MemoryCache.cpp |
454 | 253 UnitTests/Png.cpp |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
254 UnitTests/RestApi.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
255 UnitTests/SQLite.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
256 UnitTests/SQLiteChromium.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
257 UnitTests/ServerIndex.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
258 UnitTests/Versions.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
259 UnitTests/Zip.cpp |
384 | 260 UnitTests/Lua.cpp |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
261 UnitTests/main.cpp |
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
262 ) |
520 | 263 target_link_libraries(UnitTests ServerLibrary CoreLibrary) |
264 | |
265 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
266 target_link_libraries(UnitTests OpenSSL) | |
267 endif() | |
268 | |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
269 endif() |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
270 endif() |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
271 |
12 | 272 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
273 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
274 ## Create the standalone DLL containing the Orthanc Client API |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
275 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
276 |
543 | 277 if (BUILD_CLIENT_LIBRARY) |
278 include_directories(${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw) | |
279 | |
280 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
281 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) | |
282 set(ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows32.def) | |
283 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8) | |
284 set(ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows64.def) | |
285 else() | |
286 message(FATAL_ERROR "Support your platform here") | |
287 endif() | |
288 else() | |
289 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES}) | |
290 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
291 |
543 | 292 add_library(OrthancClient SHARED |
293 ${ORTHANC_ROOT}/Core/OrthancException.cpp | |
294 ${ORTHANC_ROOT}/Core/Enumerations.cpp | |
295 ${ORTHANC_ROOT}/Core/Toolbox.cpp | |
296 ${ORTHANC_ROOT}/Core/HttpClient.cpp | |
297 ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp | |
298 ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp | |
299 ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp | |
300 ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp | |
301 ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp | |
302 ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp | |
303 ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp | |
304 ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp | |
305 ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp | |
306 ${ORTHANC_ROOT}/OrthancCppClient/Package/SharedLibrary.cpp | |
307 ${ORTHANC_ROOT}/Resources/sha1/sha1.cpp | |
308 ${ORTHANC_ROOT}/Resources/md5/md5.c | |
309 ${ORTHANC_ROOT}/Resources/base64/base64.cpp | |
310 ${ORTHANC_CPP_CLIENT_AUX} | |
311 ${THIRD_PARTY_SOURCES} | |
312 ${CURL_SOURCES} | |
313 ) | |
314 | |
315 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") | |
316 set_target_properties(OrthancClient | |
317 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw/VersionScript.map" | |
318 ) | |
319 target_link_libraries(OrthancClient pthread) | |
320 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
321 target_link_libraries(OrthancClient OpenSSL) | |
322 | |
323 if (${CMAKE_COMPILER_IS_GNUCXX}) | |
324 set_target_properties(OrthancClient | |
325 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++" | |
326 ) | |
327 target_link_libraries(OrthancClient ws2_32) | |
328 else() | |
329 message(FATAL_ERROR "Support Visual Studio here") | |
330 endif() | |
522 | 331 else() |
332 message(FATAL_ERROR "Support your platform here") | |
333 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
334 |
543 | 335 # Copy the header file of the client library to the build directory |
336 add_custom_command( | |
337 TARGET OrthancClient PRE_BUILD | |
338 COMMAND ${CMAKE_COMMAND} -E copy | |
339 ${ORTHANC_ROOT}/OrthancCppClient/Package/AUTOGENERATED/OrthancCppClient.h | |
340 ${CMAKE_BINARY_DIR}) | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
341 |
543 | 342 install( |
343 TARGETS OrthancClient | |
344 LIBRARY DESTINATION lib | |
522 | 345 ) |
525 | 346 |
543 | 347 install( |
348 FILES ${CMAKE_BINARY_DIR}/OrthancCppClient.h | |
349 DESTINATION include/orthanc | |
350 ) | |
522 | 351 endif() |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
352 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
353 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
354 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
355 ## Generate the documentation if Doxygen is present |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
356 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
357 |
12 | 358 find_package(Doxygen) |
359 if (DOXYGEN_FOUND) | |
360 configure_file( | |
57 | 361 ${CMAKE_SOURCE_DIR}/Resources/Orthanc.doxygen |
362 ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen | |
12 | 363 @ONLY) |
364 add_custom_target(doc | |
57 | 365 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen |
12 | 366 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
367 COMMENT "Generating API documentation with Doxygen" VERBATIM | |
368 ) | |
149 | 369 else() |
370 message("Doxygen not found. The documentation will not be built.") | |
134 | 371 endif() |
149 | 372 |