Mercurial > hg > orthanc
annotate CMakeLists.txt @ 591:a00f626290db
better api
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 02 Oct 2013 17:36:14 +0200 |
parents | a042693cc6a9 |
children | c5ee586a0a08 |
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( | |
549
0fc8ef464cfb
fix mainline version
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
545
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 |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
23 # Advanced parameters to fine-tune linking against system libraries |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
24 SET(USE_DYNAMIC_JSONCPP OFF CACHE BOOL "Use the dynamic version of JsonCpp") |
134 | 25 SET(USE_DYNAMIC_GOOGLE_LOG ON CACHE BOOL "Use the dynamic version of Google Log") |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
26 SET(USE_DYNAMIC_GOOGLE_TEST ON CACHE BOOL "Use the dynamic version of Google Test") |
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") |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
30 SET(DEBIAN_USE_GTEST_SOURCE_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)") |
134 | 31 |
135 | 32 mark_as_advanced(USE_DYNAMIC_JSONCPP) |
33 mark_as_advanced(USE_DYNAMIC_GOOGLE_LOG) | |
34 mark_as_advanced(USE_DYNAMIC_GOOGLE_TEST) | |
147 | 35 mark_as_advanced(USE_DYNAMIC_SQLITE) |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
36 mark_as_advanced(DEBIAN_USE_GTEST_SOURCE_PACKAGE) |
134 | 37 |
38 # Some basic inclusions | |
12 | 39 include(CheckIncludeFiles) |
101 | 40 include(CheckIncludeFileCXX) |
389
9aa8ecbeeeb9
dynamically linking against Mongoose
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
383
diff
changeset
|
41 include(CheckLibraryExists) |
134 | 42 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) |
43 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) | |
44 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) | |
133 | 45 |
506
6e4bd06c17c5
the wrapper is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
496
diff
changeset
|
46 set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}) |
6e4bd06c17c5
the wrapper is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
496
diff
changeset
|
47 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
48 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
49 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
50 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
51 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
52 ## Inclusion of third-party dependencies |
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 |
134 | 55 # Configuration of the standalone builds |
569 | 56 if (CMAKE_CROSSCOMPILING) |
134 | 57 # Cross-compilation implies the standalone build |
19 | 58 SET(STANDALONE_BUILD ON) |
59 endif() | |
60 | |
134 | 61 # Prepare the third-party dependencies |
22 | 62 SET(THIRD_PARTY_SOURCES |
63 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
24 | 64 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp |
22 | 65 ) |
26 | 66 |
102
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
67 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) |
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
68 |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
69 if (${ENABLE_SSL}) |
57 | 70 add_definitions(-DORTHANC_SSL_ENABLED=1) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
71 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
72 else() |
57 | 73 add_definitions(-DORTHANC_SSL_ENABLED=0) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
74 endif() |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
75 |
12 | 76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
77 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) |
12 | 78 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) |
79 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
80 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
81 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
82 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
83 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
382 | 84 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LuaConfiguration.cmake) |
12 | 85 |
86 | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
87 |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
88 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
89 ## Autogeneration of files |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
90 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
91 |
291
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
92 # Prepare the embedded files |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
93 set(EMBEDDED_FILES |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
94 PREPARE_DATABASE ${CMAKE_CURRENT_SOURCE_DIR}/OrthancServer/PrepareDatabase.sql |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
95 CONFIGURATION_SAMPLE ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Configuration.json |
384 | 96 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
|
97 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
98 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
99 if (${STANDALONE_BUILD}) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
100 # 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
|
101 add_definitions(-DORTHANC_STANDALONE=1) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
102 EmbedResources( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
103 ${EMBEDDED_FILES} |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
104 ORTHANC_EXPLORER ${CMAKE_CURRENT_SOURCE_DIR}/OrthancExplorer |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
105 ${DCMTK_DICTIONARIES} |
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 else() |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
108 add_definitions( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
109 -DORTHANC_STANDALONE=0 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
110 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
111 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
112 EmbedResources( |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
113 ${EMBEDDED_FILES} |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
114 ) |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
115 endif() |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
116 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
117 |
4d7469f72a0b
embedding of dicom dictionaries
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
289
diff
changeset
|
118 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
119 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
120 ## Build the core of Orthanc |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
121 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
122 |
520 | 123 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH) |
124 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
125 add_library(OpenSSL STATIC ${OPENSSL_SOURCES}) | |
126 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
127 |
12 | 128 add_library(CoreLibrary |
129 STATIC | |
130 ${AUTOGENERATED_SOURCES} | |
131 ${THIRD_PARTY_SOURCES} | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
132 ${CURL_SOURCES} |
12 | 133 |
284
06aa7b7b6723
implementation of a single-threaded cache mechanism
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
283
diff
changeset
|
134 Core/Cache/MemoryCache.cpp |
12 | 135 Core/ChunkedBuffer.cpp |
136 Core/Compression/BufferCompressor.cpp | |
137 Core/Compression/ZlibCompressor.cpp | |
81 | 138 Core/Compression/ZipWriter.cpp |
247
c9b3ba0fd140
path management in zip files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
139 Core/Compression/HierarchicalZipWriter.cpp |
57 | 140 Core/OrthancException.cpp |
12 | 141 Core/DicomFormat/DicomArray.cpp |
142 Core/DicomFormat/DicomMap.cpp | |
143 Core/DicomFormat/DicomTag.cpp | |
79 | 144 Core/DicomFormat/DicomIntegerPixelAccessor.cpp |
178 | 145 Core/DicomFormat/DicomInstanceHasher.cpp |
477 | 146 Core/Enumerations.cpp |
234 | 147 Core/FileStorage/FileStorage.cpp |
221
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
148 Core/FileStorage/StorageAccessor.cpp |
e7432706b354
accessors to storage
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
213
diff
changeset
|
149 Core/FileStorage/CompressedFileStorageAccessor.cpp |
232
5368bbe813cf
refactoring of attachments
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
150 Core/FileStorage/FileStorageAccessor.cpp |
476 | 151 Core/HttpClient.cpp |
12 | 152 Core/HttpServer/EmbeddedResourceHttpHandler.cpp |
153 Core/HttpServer/FilesystemHttpHandler.cpp | |
154 Core/HttpServer/HttpHandler.cpp | |
155 Core/HttpServer/HttpOutput.cpp | |
156 Core/HttpServer/MongooseServer.cpp | |
208 | 157 Core/HttpServer/HttpFileSender.cpp |
158 Core/HttpServer/FilesystemHttpSender.cpp | |
209
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
159 Core/RestApi/RestApiPath.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
160 Core/RestApi/RestApiOutput.cpp |
9960642f0f45
abstraction of RestApi
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
208
diff
changeset
|
161 Core/RestApi/RestApi.cpp |
12 | 162 Core/MultiThreading/BagOfRunnablesBySteps.cpp |
450 | 163 Core/MultiThreading/SharedMessageQueue.cpp |
458
84966299c8f8
ThreadedCommandProcessor
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
455
diff
changeset
|
164 Core/MultiThreading/ThreadedCommandProcessor.cpp |
479
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
165 Core/MultiThreading/ArrayFilledByThreads.cpp |
455 | 166 Core/FileFormats/PngReader.cpp |
454 | 167 Core/FileFormats/PngWriter.cpp |
12 | 168 Core/SQLite/Connection.cpp |
169 Core/SQLite/FunctionContext.cpp | |
170 Core/SQLite/Statement.cpp | |
171 Core/SQLite/StatementId.cpp | |
172 Core/SQLite/StatementReference.cpp | |
173 Core/SQLite/Transaction.cpp | |
174 Core/Toolbox.cpp | |
175 Core/Uuid.cpp | |
386 | 176 Core/Lua/LuaContext.cpp |
177 Core/Lua/LuaFunctionCall.cpp | |
479
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
178 |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
179 OrthancCppClient/OrthancConnection.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
180 OrthancCppClient/Study.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
181 OrthancCppClient/Series.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
182 OrthancCppClient/Instance.cpp |
0cd977e94479
initial commit of the c++ client
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
477
diff
changeset
|
183 OrthancCppClient/Patient.cpp |
12 | 184 ) |
185 | |
135 | 186 |
546 | 187 ##################################################################### |
188 ## Build the Orthanc server | |
189 ##################################################################### | |
12 | 190 |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
191 add_library(ServerLibrary |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
192 STATIC |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
193 ${DCMTK_SOURCES} |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
194 OrthancServer/DicomProtocol/DicomFindAnswers.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
195 OrthancServer/DicomProtocol/DicomServer.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
196 OrthancServer/DicomProtocol/DicomUserConnection.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
197 OrthancServer/FromDcmtkBridge.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
198 OrthancServer/Internals/CommandDispatcher.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
199 OrthancServer/Internals/FindScp.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
200 OrthancServer/Internals/MoveScp.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
201 OrthancServer/Internals/StoreScp.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
202 OrthancServer/OrthancInitialization.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
203 OrthancServer/OrthancRestApi.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
204 OrthancServer/ServerIndex.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
205 OrthancServer/ToDcmtkBridge.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
206 OrthancServer/DatabaseWrapper.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
207 OrthancServer/ServerContext.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
208 OrthancServer/ServerEnumerations.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
209 OrthancServer/ServerToolbox.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
210 ) |
12 | 211 |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
212 # Ensure autogenerated code is built before building ServerLibrary |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
213 add_dependencies(ServerLibrary CoreLibrary) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
214 |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
215 add_executable(Orthanc |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
216 OrthancServer/main.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
217 ) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
218 |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
219 target_link_libraries(Orthanc ServerLibrary CoreLibrary) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
220 |
546 | 221 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) |
222 target_link_libraries(Orthanc OpenSSL) | |
223 endif() | |
224 | |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
225 install( |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
226 TARGETS Orthanc |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
227 RUNTIME DESTINATION bin |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
228 ) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
229 |
546 | 230 |
231 | |
232 ##################################################################### | |
233 ## Build the unit tests if required | |
234 ##################################################################### | |
235 | |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
236 if (BUILD_UNIT_TESTS) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
237 add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
238 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
239 add_executable(UnitTests |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
240 ${GTEST_SOURCES} |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
241 UnitTests/FileStorage.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
242 UnitTests/MemoryCache.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
243 UnitTests/Png.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
244 UnitTests/RestApi.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
245 UnitTests/SQLite.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
246 UnitTests/SQLiteChromium.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
247 UnitTests/ServerIndex.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
248 UnitTests/Versions.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
249 UnitTests/Zip.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
250 UnitTests/Lua.cpp |
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
251 UnitTests/main.cpp |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
252 ) |
517
b2b56b4e33b0
simplifications to cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
494
diff
changeset
|
253 target_link_libraries(UnitTests ServerLibrary CoreLibrary) |
520 | 254 |
255 if (${OPENSSL_SOURCES_LENGTH} GREATER 0) | |
546 | 256 target_link_libraries(UnitTests OpenSSL) |
261
9e24c33c3361
possibility to compile just the CoreLibrary
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
257 endif() |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
258 endif() |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
259 |
12 | 260 |
546 | 261 |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
262 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
263 ## 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
|
264 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
265 |
543 | 266 if (BUILD_CLIENT_LIBRARY) |
576 | 267 include_directories(${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/Laaw) |
543 | 268 |
269 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
569 | 270 if (CMAKE_CROSSCOMPILING) |
271 # Remove the default "lib" prefix from "libOrthancClient.dll" if cross-compiling | |
272 set(CMAKE_SHARED_LIBRARY_PREFIX "") | |
273 | |
568 | 274 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) |
576 | 275 set(ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows32.def) |
568 | 276 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8) |
576 | 277 set(ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows64.def) |
568 | 278 else() |
279 message(FATAL_ERROR "Support your platform here") | |
280 endif() | |
543 | 281 else() |
570 | 282 # Nothing to do if using Visual Studio |
543 | 283 endif() |
570 | 284 |
571 | 285 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) |
286 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows32.dll") | |
576 | 287 list(APPEND ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows32.rc) |
571 | 288 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8) |
289 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows64.dll") | |
576 | 290 list(APPEND ORTHANC_CPP_CLIENT_AUX ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows64.rc) |
571 | 291 else() |
292 message(FATAL_ERROR "Support your platform here") | |
293 endif() | |
294 | |
543 | 295 else() |
296 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES}) | |
297 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
298 |
543 | 299 add_library(OrthancClient SHARED |
300 ${ORTHANC_ROOT}/Core/OrthancException.cpp | |
301 ${ORTHANC_ROOT}/Core/Enumerations.cpp | |
302 ${ORTHANC_ROOT}/Core/Toolbox.cpp | |
303 ${ORTHANC_ROOT}/Core/HttpClient.cpp | |
304 ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp | |
305 ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp | |
306 ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp | |
307 ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp | |
308 ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp | |
309 ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp | |
310 ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp | |
311 ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp | |
312 ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp | |
576 | 313 ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/SharedLibrary.cpp |
543 | 314 ${ORTHANC_ROOT}/Resources/md5/md5.c |
315 ${ORTHANC_ROOT}/Resources/base64/base64.cpp | |
316 ${ORTHANC_CPP_CLIENT_AUX} | |
317 ${THIRD_PARTY_SOURCES} | |
318 ${CURL_SOURCES} | |
319 ) | |
320 | |
321 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") | |
322 set_target_properties(OrthancClient | |
576 | 323 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/Laaw/VersionScript.map" |
543 | 324 ) |
325 target_link_libraries(OrthancClient pthread) | |
569 | 326 |
543 | 327 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") |
570 | 328 target_link_libraries(OrthancClient OpenSSL ws2_32) |
329 | |
569 | 330 if (CMAKE_CROSSCOMPILING) |
543 | 331 set_target_properties(OrthancClient |
332 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++" | |
333 ) | |
334 endif() | |
569 | 335 |
522 | 336 else() |
337 message(FATAL_ERROR "Support your platform here") | |
338 endif() | |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
339 |
543 | 340 install( |
341 TARGETS OrthancClient | |
571 | 342 RUNTIME DESTINATION lib # Destination for Windows |
343 LIBRARY DESTINATION lib # Destination for Linux | |
522 | 344 ) |
525 | 345 |
543 | 346 install( |
576 | 347 FILES ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/AUTOGENERATED/OrthancCppClient.h |
543 | 348 DESTINATION include/orthanc |
349 ) | |
522 | 350 endif() |
516
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
351 |
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 ## 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
|
355 ##################################################################### |
49a1228d6fe7
building the dll from the main CMakeLists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
506
diff
changeset
|
356 |
12 | 357 find_package(Doxygen) |
358 if (DOXYGEN_FOUND) | |
359 configure_file( | |
57 | 360 ${CMAKE_SOURCE_DIR}/Resources/Orthanc.doxygen |
361 ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen | |
12 | 362 @ONLY) |
573 | 363 |
364 configure_file( | |
365 ${CMAKE_SOURCE_DIR}/Resources/OrthancClient.doxygen | |
366 ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen | |
367 @ONLY) | |
368 | |
591 | 369 add_custom_target(doc-client |
573 | 370 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen |
12 | 371 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
591 | 372 COMMENT "Generating client documentation with Doxygen" VERBATIM |
12 | 373 ) |
573 | 374 |
591 | 375 add_custom_target(doc-internal |
376 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen | |
377 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} | |
378 COMMENT "Generating internal documentation with Doxygen" VERBATIM | |
379 ) | |
380 | |
381 add_custom_target(doc DEPENDS doc-client doc-internal) | |
382 | |
149 | 383 else() |
384 message("Doxygen not found. The documentation will not be built.") | |
134 | 385 endif() |
584
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
386 |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
387 |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
388 ##################################################################### |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
389 ## Prepare the "uninstall" target |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
390 ## http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
391 ##################################################################### |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
392 |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
393 configure_file( |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
394 "${CMAKE_CURRENT_SOURCE_DIR}/Resources/CMake/Uninstall.cmake.in" |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
395 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
396 IMMEDIATE @ONLY) |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
397 |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
398 add_custom_target(uninstall |
a042693cc6a9
uninstall target for make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
578
diff
changeset
|
399 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) |