annotate Google/CMakeLists.txt @ 134:f35c3281e62f 2.3.1

2.3.1
author Alain Mazy <am@osimis.io>
date Wed, 20 Dec 2023 16:04:03 +0100
parents 573585bcc9ff
children 02168cb50699
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
56
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
1 # Cloud storage plugins for Orthanc
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
2 # Copyright (C) 2020-2021 Osimis S.A., Belgium
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
3 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
4 # This program is free software: you can redistribute it and/or
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
5 # modify it under the terms of the GNU Affero General Public License
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
6 # as published by the Free Software Foundation, either version 3 of
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
7 # the License, or (at your option) any later version.
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
8 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
9 # This program is distributed in the hope that it will be useful, but
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
12 # Affero General Public License for more details.
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
13 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
14 # You should have received a copy of the GNU Affero General Public License
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
16
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
17
109
2549eecdc996 updated minimum cmake version for Azure & Google
Alain Mazy <am@osimis.io>
parents: 108
diff changeset
18 cmake_minimum_required(VERSION 3.3)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
19
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
20 project(OrthancGoogleCloudStorage)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
21
134
Alain Mazy <am@osimis.io>
parents: 132
diff changeset
22 set(PLUGIN_VERSION "2.3.1")
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
23
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
24 if (PLUGIN_VERSION STREQUAL "mainline")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
25 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
26 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
27 else()
134
Alain Mazy <am@osimis.io>
parents: 132
diff changeset
28 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.12.2")
Alain Mazy <am@osimis.io>
parents: 132
diff changeset
29 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
30 endif()
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
31
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
32 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc framework (can be \"system\", \"hg\", \"archive\", \"web\" or \"path\")")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
33 set(ORTHANC_FRAMEWORK_VERSION "${ORTHANC_FRAMEWORK_DEFAULT_VERSION}" CACHE STRING "Version of the Orthanc framework")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
34 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
35 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"")
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
36 set(ALLOW_DOWNLOADS ON)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
37
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
38
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
39 include(CheckIncludeFileCXX)
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
40
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
41 # Download and setup the Orthanc framework
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
42
59
f3c44d61e1e1 AWS S3: Support of dynamic linking against the system-wide Orthanc framework library
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 56
diff changeset
43 include(${CMAKE_SOURCE_DIR}/../Common/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
44 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
45
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
46 set(ENABLE_GOOGLE_TEST ON)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
47 set(ORTHANC_FRAMEWORK_PLUGIN ON)
22
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
48 set(ENABLE_MODULE_IMAGES OFF)
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
49 set(ENABLE_MODULE_JOBS OFF)
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
50 set(ENABLE_MODULE_DICOM OFF)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
51
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
52 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
18
44de9edf2443 fix compilation to avoid exposing internal symbols which caused a crash at Orthanc startup
Alain Mazy
parents: 15
diff changeset
53 include(${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
54
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
55
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
56 add_definitions(
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
57 -DHAS_ORTHANC_EXCEPTION=1
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
58 -DORTHANC_ENABLE_LOGGING=1
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
59 -DGOOGLE_STORAGE_PLUGIN=1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
60 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
61 add_definitions(-DPLUGIN_VERSION="${PLUGIN_VERSION}")
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
62
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
63 include_directories(
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
64 ${ORTHANC_FRAMEWORK_ROOT}
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
65 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Include
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
66 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
67 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
68
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
69 find_package(CURL REQUIRED)
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
70 find_package(google_cloud_cpp_storage REQUIRED)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
71 find_package(cryptopp CONFIG REQUIRED)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
72
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
73 set(CMAKE_CXX_STANDARD 14)
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
74
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
75 set(COMMON_SOURCES
78
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
76 ${CMAKE_SOURCE_DIR}/../Common/IStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
77 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
78 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.cpp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
79 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
80 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.h
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
81 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
82 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.h
78
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
83 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
84 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.cpp
83
431ab61b5760 /move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents: 78
diff changeset
85 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.h
431ab61b5760 /move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents: 78
diff changeset
86 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.cpp
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
87 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
88
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
89 ${ORTHANC_CORE_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
90 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
91
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
92 add_library(OrthancGoogleCloudStorage SHARED
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
93 GoogleStoragePlugin.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
94 GoogleStoragePlugin.h
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
95 ${CMAKE_SOURCE_DIR}/../Common/StoragePlugin.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
96
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
97 ${COMMON_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
98 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
99
132
573585bcc9ff fix test about presence of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 131
diff changeset
100 if (COMMAND DefineSourceBasenameForTarget)
130
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
101 DefineSourceBasenameForTarget(OrthancGoogleCloudStorage)
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
102 endif()
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
103
105
0585b5de6be2 fix cmake warnings
Alain Mazy <am@osimis.io>
parents: 101
diff changeset
104
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
105 set_target_properties(OrthancGoogleCloudStorage PROPERTIES
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
106 VERSION ${PLUGIN_VERSION}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
107 SOVERSION ${PLUGIN_VERSION}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
108 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
109
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
110 target_link_libraries(OrthancGoogleCloudStorage
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
111 PRIVATE
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
112 CURL::libcurl
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
113 google-cloud-cpp::storage
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
114 google-cloud-cpp::experimental-storage-grpc
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
115 cryptopp::cryptopp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
116 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
117
131
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
118 install(
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
119 TARGETS OrthancGoogleCloudStorage
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
120 RUNTIME DESTINATION lib # Destination for Windows
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
121 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
122 )
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
123
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
124 add_executable(UnitTests
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
125 ${GOOGLE_TEST_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
126 ${COMMON_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
127
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
128 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/EncryptionTests.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
129 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsMain.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
130 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsGcsClient.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
131 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
132
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
133 target_link_libraries(UnitTests
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
134 PRIVATE
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
135 CURL::libcurl
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
136 google-cloud-cpp::storage
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
137 google-cloud-cpp::experimental-storage-grpc
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
138 cryptopp::cryptopp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
139 ${GOOGLE_TEST_LIBRARIES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
140 )