Mercurial > hg > orthanc
annotate CMakeLists.txt @ 175:662af781a227
sample config file from command line
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 05 Nov 2012 12:31:02 +0100 |
parents | 262505043929 |
children | 81b6f3013738 |
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( | |
170 | 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)") |
134 | 23 |
135 | 24 mark_as_advanced(USE_DYNAMIC_JSONCPP) |
25 mark_as_advanced(USE_DYNAMIC_GOOGLE_LOG) | |
26 mark_as_advanced(USE_DYNAMIC_GOOGLE_TEST) | |
147 | 27 mark_as_advanced(USE_DYNAMIC_SQLITE) |
135 | 28 mark_as_advanced(DEBIAN_FORCE_HARDENING) |
29 mark_as_advanced(DEBIAN_USE_STATIC_GOOGLE_TEST) | |
134 | 30 |
31 # Some basic inclusions | |
12 | 32 include(CheckIncludeFiles) |
101 | 33 include(CheckIncludeFileCXX) |
134 | 34 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) |
35 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) | |
36 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake) | |
133 | 37 |
134 | 38 # Configuration of the standalone builds |
19 | 39 if (${CMAKE_CROSSCOMPILING}) |
134 | 40 # Cross-compilation implies the standalone build |
19 | 41 SET(STANDALONE_BUILD ON) |
42 endif() | |
43 | |
134 | 44 if (${STANDALONE_BUILD}) |
45 # We embed all the resources in the binaries for standalone builds | |
46 add_definitions(-DORTHANC_STANDALONE=1) | |
47 EmbedResources( | |
48 PREPARE_DATABASE OrthancServer/PrepareDatabase.sql | |
49 ORTHANC_EXPLORER OrthancExplorer | |
175
662af781a227
sample config file from command line
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
170
diff
changeset
|
50 CONFIGURATION_SAMPLE Resources/Configuration.json |
134 | 51 ) |
12 | 52 else() |
134 | 53 add_definitions( |
54 -DORTHANC_STANDALONE=0 | |
55 -DORTHANC_PATH=\"${CMAKE_SOURCE_DIR}\" | |
56 ) | |
57 EmbedResources( | |
58 PREPARE_DATABASE OrthancServer/PrepareDatabase.sql | |
175
662af781a227
sample config file from command line
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
170
diff
changeset
|
59 CONFIGURATION_SAMPLE Resources/Configuration.json |
134 | 60 ) |
12 | 61 endif() |
62 | |
63 | |
134 | 64 # Prepare the third-party dependencies |
22 | 65 SET(THIRD_PARTY_SOURCES |
66 ${CMAKE_SOURCE_DIR}/Resources/md5/md5.c | |
24 | 67 ${CMAKE_SOURCE_DIR}/Resources/base64/base64.cpp |
22 | 68 ) |
26 | 69 |
102
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
70 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleLogConfiguration.cmake) |
7593b57dc1bf
switch to google log
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
71 |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
72 if (${ENABLE_SSL}) |
57 | 73 add_definitions(-DORTHANC_SSL_ENABLED=1) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
74 include(${CMAKE_SOURCE_DIR}/Resources/CMake/OpenSslConfiguration.cmake) |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
75 else() |
57 | 76 add_definitions(-DORTHANC_SSL_ENABLED=0) |
29
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
77 endif() |
042ac60f5bf9
simplified build of curl
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
26
diff
changeset
|
78 |
12 | 79 include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) |
80 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) | |
81 include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) | |
82 include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) | |
83 include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) | |
84 include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) | |
85 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) | |
86 include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) | |
87 | |
88 | |
134 | 89 # The main instructions to build the Orthanc binaries |
12 | 90 add_library(CoreLibrary |
91 STATIC | |
92 ${AUTOGENERATED_SOURCES} | |
93 ${THIRD_PARTY_SOURCES} | |
94 | |
95 Core/ChunkedBuffer.cpp | |
96 Core/Compression/BufferCompressor.cpp | |
97 Core/Compression/ZlibCompressor.cpp | |
81 | 98 Core/Compression/ZipWriter.cpp |
57 | 99 Core/OrthancException.cpp |
12 | 100 Core/DicomFormat/DicomArray.cpp |
101 Core/DicomFormat/DicomMap.cpp | |
102 Core/DicomFormat/DicomTag.cpp | |
79 | 103 Core/DicomFormat/DicomIntegerPixelAccessor.cpp |
12 | 104 Core/FileStorage.cpp |
105 Core/HttpServer/EmbeddedResourceHttpHandler.cpp | |
106 Core/HttpServer/FilesystemHttpHandler.cpp | |
107 Core/HttpServer/HttpHandler.cpp | |
108 Core/HttpServer/HttpOutput.cpp | |
109 Core/HttpServer/MongooseServer.cpp | |
110 Core/MultiThreading/BagOfRunnablesBySteps.cpp | |
111 Core/PngWriter.cpp | |
112 Core/SQLite/Connection.cpp | |
113 Core/SQLite/FunctionContext.cpp | |
114 Core/SQLite/Statement.cpp | |
115 Core/SQLite/StatementId.cpp | |
116 Core/SQLite/StatementReference.cpp | |
117 Core/SQLite/Transaction.cpp | |
118 Core/Toolbox.cpp | |
119 Core/Uuid.cpp | |
120 | |
57 | 121 OrthancCppClient/HttpClient.cpp |
122 OrthancCppClient/HttpException.cpp | |
12 | 123 ) |
124 | |
125 add_library(ServerLibrary | |
57 | 126 OrthancServer/DicomProtocol/DicomFindAnswers.cpp |
127 OrthancServer/DicomProtocol/DicomServer.cpp | |
128 OrthancServer/DicomProtocol/DicomUserConnection.cpp | |
129 OrthancServer/FromDcmtkBridge.cpp | |
130 OrthancServer/Internals/CommandDispatcher.cpp | |
131 OrthancServer/Internals/FindScp.cpp | |
132 OrthancServer/Internals/MoveScp.cpp | |
133 OrthancServer/Internals/StoreScp.cpp | |
134 OrthancServer/OrthancInitialization.cpp | |
135 OrthancServer/OrthancRestApi.cpp | |
136 OrthancServer/ServerIndex.cpp | |
137 OrthancServer/ToDcmtkBridge.cpp | |
12 | 138 ) |
139 | |
140 # Ensure autogenerated code is built before building ServerLibrary | |
141 add_dependencies(ServerLibrary CoreLibrary) | |
142 | |
57 | 143 add_executable(Orthanc |
144 OrthancServer/main.cpp | |
12 | 145 ) |
146 | |
134 | 147 target_link_libraries(Orthanc ServerLibrary CoreLibrary) |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
148 |
135 | 149 install( |
150 TARGETS Orthanc | |
151 RUNTIME DESTINATION bin | |
152 ) | |
153 | |
12 | 154 |
134 | 155 # Build the unit tests if required |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
156 if (BUILD_UNIT_TESTS) |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
157 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
158 add_executable(UnitTests |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
159 ${GTEST_SOURCES} |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
160 UnitTests/main.cpp |
139
3ad78369fcc4
start threaded messages
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
135
diff
changeset
|
161 UnitTests/MessageWithDestination.cpp |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
162 UnitTests/SQLite.cpp |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
163 UnitTests/SQLiteChromium.cpp |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
164 UnitTests/Versions.cpp |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
165 UnitTests/Zip.cpp |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
166 ) |
134 | 167 target_link_libraries(UnitTests ServerLibrary CoreLibrary) |
120
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
168 endif() |
5af0a4345d06
disabling of unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
102
diff
changeset
|
169 |
12 | 170 |
134 | 171 # Generate the Doxygen documentation if Doxygen is present |
12 | 172 find_package(Doxygen) |
173 if (DOXYGEN_FOUND) | |
174 configure_file( | |
57 | 175 ${CMAKE_SOURCE_DIR}/Resources/Orthanc.doxygen |
176 ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen | |
12 | 177 @ONLY) |
178 add_custom_target(doc | |
57 | 179 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Orthanc.doxygen |
12 | 180 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
181 COMMENT "Generating API documentation with Doxygen" VERBATIM | |
182 ) | |
149 | 183 else() |
184 message("Doxygen not found. The documentation will not be built.") | |
134 | 185 endif() |
149 | 186 |