Mercurial > hg > orthanc-gcp
annotate CMakeLists.txt @ 18:e7ea54d8c16c OrthancGoogleCloudPlatform-1.0
OrthancGoogleCloudPlatform-1.0
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 26 Jun 2019 14:43:49 +0200 |
parents | 2514880d4f0b |
children | a722ca0ad867 a2c57c351627 |
rev | line source |
---|---|
0 | 1 cmake_minimum_required(VERSION 2.8) |
2 | |
3 project(GoogleCloudPlatform) | |
4 | |
18
e7ea54d8c16c
OrthancGoogleCloudPlatform-1.0
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
17
diff
changeset
|
5 set(GCP_PLUGIN_VERSION "1.0") |
0 | 6 |
7 if (GCP_PLUGIN_VERSION STREQUAL "mainline") | |
9 | 8 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") |
9 set(ORTHANC_FRAMEWORK_VERSION "mainline") | |
10 else() | |
11 # "hg" is not available in holy-build-box => We set | |
17 | 12 # "ORTHANC_FRAMEWORK_SOURCE" to "web" in the BuildBot script, which |
13 # forces to use a specific version (1.5.7) | |
14 set(ORTHANC_FRAMEWORK_VERSION "1.5.7") | |
9 | 15 endif() |
16 | |
0 | 17 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") |
18 else() | |
17 | 19 set(ORTHANC_FRAMEWORK_VERSION "1.5.7") |
0 | 20 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") |
21 endif() | |
22 | |
23 | |
24 # Parameters of the build | |
25 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
26 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | |
27 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")") | |
28 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"") | |
29 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"") | |
30 | |
31 # Advanced parameters to fine-tune linking against system libraries | |
32 set(USE_SYSTEM_GDCM ON CACHE BOOL "Use the system version of Grassroot DICOM (GDCM)") | |
33 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK") | |
34 set(ORTHANC_SDK_VERSION "1.0.0" CACHE STRING "Version of the Orthanc plugin SDK to use, if not using the system version (can be \"1.0.0\", or \"framework\")") | |
35 | |
36 | |
37 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/DownloadOrthancFramework.cmake) | |
38 | |
39 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) | |
40 | |
41 set(ENABLE_CRYPTO_OPTIONS ON) | |
42 set(ENABLE_ZLIB ON) | |
43 set(ENABLE_WEB_CLIENT ON) | |
6 | 44 set(ENABLE_OPENSSL_ENGINES ON) # Necessary on Windows |
0 | 45 |
46 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake) | |
47 | |
48 include(${CMAKE_SOURCE_DIR}/Resources/CMake/CRC32C.cmake) | |
49 include(${CMAKE_SOURCE_DIR}/Resources/CMake/NlohmannJson.cmake) | |
50 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleCloudPlatform.cmake) | |
51 | |
52 | |
53 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK) | |
54 if (ORTHANC_SDK_VERSION STREQUAL "1.0.0") | |
55 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.0.0) | |
56 elseif (ORTHANC_SDK_VERSION STREQUAL "framework") | |
57 include_directories(${ORTHANC_ROOT}/Plugins/Include) | |
58 else() | |
59 message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}") | |
60 endif() | |
61 else () | |
62 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H) | |
63 if (NOT HAVE_ORTHANC_H) | |
64 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK") | |
65 endif() | |
66 endif() | |
67 | |
68 | |
69 | |
70 add_definitions( | |
71 -DHAS_ORTHANC_EXCEPTION=1 | |
72 -DORTHANC_ENABLE_LOGGING=1 | |
73 -DORTHANC_ENABLE_LOGGING_PLUGIN=1 | |
74 -DGCP_PLUGIN_VERSION="${GCP_PLUGIN_VERSION}" | |
75 ) | |
76 | |
77 include_directories( | |
78 ${AUTOGENERATED_DIR} | |
79 ${ORTHANC_ROOT} | |
80 ) | |
81 | |
8
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
82 if (ON) |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
83 # Redefine the list of Orthanc sources, removing unused items, in |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
84 # order to reduce the number of files and speed up the builds |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
85 set(ORTHANC_CORE_SOURCES |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
86 ${ORTHANC_CORE_SOURCES_DEPENDENCIES} |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
87 ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
88 ${ORTHANC_ROOT}/Core/Enumerations.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
89 ${ORTHANC_ROOT}/Core/HttpClient.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
90 ${ORTHANC_ROOT}/Core/Logging.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
91 ${ORTHANC_ROOT}/Core/SystemToolbox.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
92 ${ORTHANC_ROOT}/Core/Toolbox.cpp |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
93 ) |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
94 endif() |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
95 |
0 | 96 add_library(OrthancGoogleCloudPlatform SHARED |
97 ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp | |
98 Plugin/GoogleAccount.cpp | |
99 Plugin/GoogleConfiguration.cpp | |
100 Plugin/GoogleUpdater.cpp | |
101 Plugin/Plugin.cpp | |
102 | |
103 ${CRC32C_SOURCES} | |
104 ${CURL_SOURCES} | |
105 ${GCP_SOURCES} | |
106 ${OPENSSL_SOURCES} | |
107 ${ZLIB_SOURCES} | |
108 ${ORTHANC_CORE_SOURCES} | |
109 ) | |
110 | |
111 set_target_properties(OrthancGoogleCloudPlatform PROPERTIES | |
112 VERSION ${GCP_PLUGIN_VERSION} | |
113 SOVERSION ${GCP_PLUGIN_VERSION}) | |
114 | |
115 install( | |
116 TARGETS OrthancGoogleCloudPlatform | |
117 RUNTIME DESTINATION lib # Destination for Windows | |
118 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
119 ) |