Mercurial > hg > orthanc-gcp
annotate CMakeLists.txt @ 36:92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 06 Jul 2020 13:20:02 +0200 |
parents | eb09eb1251b9 |
children | 56c9b700a0db |
rev | line source |
---|---|
0 | 1 cmake_minimum_required(VERSION 2.8) |
2 | |
3 project(GoogleCloudPlatform) | |
4 | |
19 | 5 set(GCP_PLUGIN_VERSION "mainline") |
0 | 6 |
7 if (GCP_PLUGIN_VERSION STREQUAL "mainline") | |
34 | 8 set(ORTHANC_FRAMEWORK_VERSION "mainline") |
0 | 9 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") |
10 else() | |
17 | 11 set(ORTHANC_FRAMEWORK_VERSION "1.5.7") |
0 | 12 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") |
13 endif() | |
14 | |
15 | |
16 # Parameters of the build | |
17 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
18 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | |
19 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")") | |
20 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"") | |
21 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"") | |
22 | |
23 # Advanced parameters to fine-tune linking against system libraries | |
24 set(USE_SYSTEM_GDCM ON CACHE BOOL "Use the system version of Grassroot DICOM (GDCM)") | |
25 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK") | |
34 | 26 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\")") |
0 | 27 |
28 | |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
29 |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
30 # Download and setup the Orthanc framework |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
31 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) |
0 | 32 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
33 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
34 link_libraries(${ORTHANC_FRAMEWORK_LIBRARIES}) |
29
ebaf3604bbc6
force the use of OpenSSL 1.0.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
21
diff
changeset
|
35 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
36 set(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl") |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
37 set(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL") |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
38 |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
39 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/LibCurlConfiguration.cmake) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
40 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/OpenSslConfiguration.cmake) |
0 | 41 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
42 else() |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
43 set(OPENSSL_STATIC_VERSION "1.0.2" CACHE STRING "TODO - Upgrade to OpenSSL 1.1.1" FORCE) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
44 |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
45 include(${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) |
0 | 46 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
47 set(ENABLE_CRYPTO_OPTIONS ON) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
48 set(ENABLE_ZLIB ON) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
49 set(ENABLE_WEB_CLIENT ON) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
50 set(ENABLE_OPENSSL_ENGINES ON) # Necessary on Windows |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
51 |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
52 include(${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
53 include_directories(${ORTHANC_FRAMEWORK_ROOT}/Sources) |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
54 endif() |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
55 |
0 | 56 |
57 include(${CMAKE_SOURCE_DIR}/Resources/CMake/CRC32C.cmake) | |
58 include(${CMAKE_SOURCE_DIR}/Resources/CMake/NlohmannJson.cmake) | |
59 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleCloudPlatform.cmake) | |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
60 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake) |
0 | 61 |
62 | |
63 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK) | |
64 if (ORTHANC_SDK_VERSION STREQUAL "1.0.0") | |
65 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.0.0) | |
66 else() | |
67 message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}") | |
68 endif() | |
69 else () | |
70 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H) | |
71 if (NOT HAVE_ORTHANC_H) | |
72 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK") | |
73 endif() | |
74 endif() | |
75 | |
76 | |
77 | |
78 add_definitions( | |
79 -DHAS_ORTHANC_EXCEPTION=1 | |
80 -DORTHANC_ENABLE_LOGGING=1 | |
81 -DORTHANC_ENABLE_LOGGING_PLUGIN=1 | |
82 -DGCP_PLUGIN_VERSION="${GCP_PLUGIN_VERSION}" | |
83 ) | |
84 | |
85 include_directories( | |
86 ${AUTOGENERATED_DIR} | |
87 ) | |
88 | |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
89 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
90 execute_process( |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
91 COMMAND |
34 | 92 ${PYTHON_EXECUTABLE} ${ORTHANC_FRAMEWORK_ROOT}/Resources/WindowsResources.py |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
93 ${GCP_PLUGIN_VERSION} "Google Cloud Platform plugin" OrthancGoogleCloudPlatform.dll |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
94 "Plugin to access Google Cloud Platform from Orthanc" |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
95 ERROR_VARIABLE Failure |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
96 OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/Version.rc |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
97 ) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
98 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
99 if (Failure) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
100 message(FATAL_ERROR "Error while computing the version information: ${Failure}") |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
101 endif() |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
102 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
103 set(GCP_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/Version.rc) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
104 endif() |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
105 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
106 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
107 if (NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") |
8
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
108 # 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
|
109 # 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
|
110 set(ORTHANC_CORE_SOURCES |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
111 ${ORTHANC_CORE_SOURCES_DEPENDENCIES} |
34 | 112 ${ORTHANC_FRAMEWORK_ROOT}/Sources/ChunkedBuffer.cpp |
113 ${ORTHANC_FRAMEWORK_ROOT}/Sources/Enumerations.cpp | |
114 ${ORTHANC_FRAMEWORK_ROOT}/Sources/HttpClient.cpp | |
115 ${ORTHANC_FRAMEWORK_ROOT}/Sources/Logging.cpp | |
116 ${ORTHANC_FRAMEWORK_ROOT}/Sources/SystemToolbox.cpp | |
117 ${ORTHANC_FRAMEWORK_ROOT}/Sources/Toolbox.cpp | |
8
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
118 ) |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
119 endif() |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
120 |
0 | 121 add_library(OrthancGoogleCloudPlatform SHARED |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
122 ${GCP_RESOURCES} |
0 | 123 Plugin/GoogleAccount.cpp |
124 Plugin/GoogleConfiguration.cpp | |
125 Plugin/GoogleUpdater.cpp | |
126 Plugin/Plugin.cpp | |
34 | 127 Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp |
0 | 128 |
129 ${CRC32C_SOURCES} | |
130 ${CURL_SOURCES} | |
131 ${GCP_SOURCES} | |
132 ${OPENSSL_SOURCES} | |
133 ${ZLIB_SOURCES} | |
134 ${ORTHANC_CORE_SOURCES} | |
135 ) | |
136 | |
137 set_target_properties(OrthancGoogleCloudPlatform PROPERTIES | |
138 VERSION ${GCP_PLUGIN_VERSION} | |
139 SOVERSION ${GCP_PLUGIN_VERSION}) | |
140 | |
141 install( | |
142 TARGETS OrthancGoogleCloudPlatform | |
143 RUNTIME DESTINATION lib # Destination for Windows | |
144 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
145 ) |