Mercurial > hg > orthanc-gcp
annotate CMakeLists.txt @ 54:509334672b6b default tip
updated copyright, as Orthanc Team now replaces Osimis
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 30 May 2024 22:48:01 +0200 |
parents | c2faa911b51d |
children |
rev | line source |
---|---|
41
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
1 |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
2 # C++11 is necessary to build the Google Cloud Platform C++ Client |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
3 # Libraries (this plugin cannot be compiled on Visual Studio 2008, or |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
4 # using Linux Standard Base - HolyBuildBox is used on Linux). MinGW on |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
5 # Ubuntu 18.04 does not work either, as "std::mutex" seems to be |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
6 # undefined. https://github.com/googleapis/google-cloud-cpp |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
7 |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
8 |
0 | 9 cmake_minimum_required(VERSION 2.8) |
10 | |
11 project(GoogleCloudPlatform) | |
12 | |
19 | 13 set(GCP_PLUGIN_VERSION "mainline") |
0 | 14 |
15 if (GCP_PLUGIN_VERSION STREQUAL "mainline") | |
34 | 16 set(ORTHANC_FRAMEWORK_VERSION "mainline") |
0 | 17 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") |
18 else() | |
44 | 19 set(ORTHANC_FRAMEWORK_VERSION "1.9.3") |
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 | 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\")") |
0 | 35 |
36 | |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
37 # 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
|
38 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) |
0 | 39 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
40 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") |
44 | 41 if (ORTHANC_FRAMEWORK_USE_SHARED) |
42 include(FindBoost) | |
43 find_package(Boost COMPONENTS thread) | |
44 | |
45 if (NOT Boost_FOUND) | |
46 message(FATAL_ERROR "Unable to locate Boost on this system") | |
47 endif() | |
48 | |
49 link_libraries(${Boost_LIBRARIES} jsoncpp) | |
50 endif() | |
51 | |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
52 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
|
53 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
54 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
|
55 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
|
56 |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
57 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
|
58 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/OpenSslConfiguration.cmake) |
0 | 59 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
60 else() |
41
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
61 set(OPENSSL_STATIC_VERSION "1.1.1" CACHE STRING "Force the use of OpenSSL 1.1.1" FORCE) |
1a96ab7b6877
trying to upgrade openssl to 1.1.1 in static builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
40
diff
changeset
|
62 |
39 | 63 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake) |
0 | 64 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
65 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
|
66 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
|
67 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
|
68 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
|
69 |
39 | 70 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake) |
45
53efee735396
improved CMakeLists.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
44
diff
changeset
|
71 include_directories(${ORTHANC_FRAMEWORK_ROOT}) |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
72 endif() |
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
73 |
0 | 74 |
75 include(${CMAKE_SOURCE_DIR}/Resources/CMake/CRC32C.cmake) | |
76 include(${CMAKE_SOURCE_DIR}/Resources/CMake/NlohmannJson.cmake) | |
77 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
|
78 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake) |
0 | 79 |
80 | |
81 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK) | |
82 if (ORTHANC_SDK_VERSION STREQUAL "1.0.0") | |
83 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.0.0) | |
84 else() | |
85 message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}") | |
86 endif() | |
87 else () | |
88 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H) | |
89 if (NOT HAVE_ORTHANC_H) | |
90 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK") | |
91 endif() | |
92 endif() | |
93 | |
94 | |
95 | |
96 add_definitions( | |
97 -DHAS_ORTHANC_EXCEPTION=1 | |
98 -DORTHANC_ENABLE_LOGGING=1 | |
99 -DORTHANC_ENABLE_LOGGING_PLUGIN=1 | |
100 -DGCP_PLUGIN_VERSION="${GCP_PLUGIN_VERSION}" | |
101 ) | |
102 | |
103 include_directories( | |
104 ${AUTOGENERATED_DIR} | |
105 ) | |
106 | |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
107 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
108 execute_process( |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
109 COMMAND |
39 | 110 ${PYTHON_EXECUTABLE} ${ORTHANC_FRAMEWORK_ROOT}/../Resources/WindowsResources.py |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
111 ${GCP_PLUGIN_VERSION} "Google Cloud Platform plugin" OrthancGoogleCloudPlatform.dll |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
112 "Plugin to access Google Cloud Platform from Orthanc" |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
113 ERROR_VARIABLE Failure |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
114 OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/Version.rc |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
115 ) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
116 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
117 if (Failure) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
118 message(FATAL_ERROR "Error while computing the version information: ${Failure}") |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
119 endif() |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
120 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
121 set(GCP_RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/Version.rc) |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
122 endif() |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
123 |
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
124 |
36
92b93845d84b
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
34
diff
changeset
|
125 if (NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") |
8
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
126 # 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
|
127 # 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
|
128 set(ORTHANC_CORE_SOURCES |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
129 ${ORTHANC_CORE_SOURCES_DEPENDENCIES} |
39 | 130 ${ORTHANC_FRAMEWORK_ROOT}/ChunkedBuffer.cpp |
40 | 131 ${ORTHANC_FRAMEWORK_ROOT}/DicomFormat/DicomTag.cpp |
39 | 132 ${ORTHANC_FRAMEWORK_ROOT}/Enumerations.cpp |
133 ${ORTHANC_FRAMEWORK_ROOT}/HttpClient.cpp | |
134 ${ORTHANC_FRAMEWORK_ROOT}/Logging.cpp | |
40 | 135 ${ORTHANC_FRAMEWORK_ROOT}/OrthancException.cpp |
43 | 136 ${ORTHANC_FRAMEWORK_ROOT}/SerializationToolbox.cpp |
39 | 137 ${ORTHANC_FRAMEWORK_ROOT}/SystemToolbox.cpp |
138 ${ORTHANC_FRAMEWORK_ROOT}/Toolbox.cpp | |
40 | 139 ${ORTHANC_FRAMEWORK_ROOT}/WebServiceParameters.cpp |
8
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
140 ) |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
141 endif() |
da3228ac9227
reduce the number of sources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
142 |
0 | 143 add_library(OrthancGoogleCloudPlatform SHARED |
20
a2c57c351627
add windows resources
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
144 ${GCP_RESOURCES} |
0 | 145 Plugin/GoogleAccount.cpp |
146 Plugin/GoogleConfiguration.cpp | |
147 Plugin/GoogleUpdater.cpp | |
148 Plugin/Plugin.cpp | |
34 | 149 Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp |
0 | 150 |
151 ${CRC32C_SOURCES} | |
152 ${CURL_SOURCES} | |
153 ${GCP_SOURCES} | |
154 ${OPENSSL_SOURCES} | |
155 ${ZLIB_SOURCES} | |
156 ${ORTHANC_CORE_SOURCES} | |
157 ) | |
158 | |
50
c2faa911b51d
fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
45
diff
changeset
|
159 if (COMMAND DefineSourceBasenameForTarget) |
c2faa911b51d
fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
45
diff
changeset
|
160 DefineSourceBasenameForTarget(OrthancGoogleCloudPlatform) |
c2faa911b51d
fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
45
diff
changeset
|
161 endif() |
c2faa911b51d
fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
45
diff
changeset
|
162 |
0 | 163 set_target_properties(OrthancGoogleCloudPlatform PROPERTIES |
164 VERSION ${GCP_PLUGIN_VERSION} | |
165 SOVERSION ${GCP_PLUGIN_VERSION}) | |
166 | |
167 install( | |
168 TARGETS OrthancGoogleCloudPlatform | |
169 RUNTIME DESTINATION lib # Destination for Windows | |
170 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
171 ) |