annotate Google/CMakeLists.txt @ 170:c4ed02f3328f

integration 1.3.0: back to mainline
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 25 Jun 2024 12:07:42 +0200
parents af3d8de2f43f 5fed32546d27
children 67067e1e8a85
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
145
3c7e0374f28e updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 135
diff changeset
2 # Copyright (C) 2020-2023 Osimis S.A., Belgium
3c7e0374f28e updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 135
diff changeset
3 # Copyright (C) 2024-2024 Orthanc Team SRL, Belgium
3c7e0374f28e updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 135
diff changeset
4 # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium
56
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
5 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
6 # 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
7 # 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
8 # 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
9 # 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
10 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
11 # 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
12 # 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
13 # 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
14 # Affero General Public License for more details.
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
15 #
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
16 # 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
17 # 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
18
b922ae86bbe1 full static linking against AWS SDK
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 52
diff changeset
19
109
2549eecdc996 updated minimum cmake version for Azure & Google
Alain Mazy <am@osimis.io>
parents: 108
diff changeset
20 cmake_minimum_required(VERSION 3.3)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
21
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
22 project(OrthancGoogleCloudStorage)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
23
135
02168cb50699 back to mainline
Alain Mazy <am@osimis.io>
parents: 134
diff changeset
24 set(PLUGIN_VERSION "mainline")
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
25
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
26 if (PLUGIN_VERSION STREQUAL "mainline")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
27 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
28 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
29 else()
146
5decdf0f0ef7 trying to build aws for windows
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 145
diff changeset
30 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.12.4")
134
Alain Mazy <am@osimis.io>
parents: 132
diff changeset
31 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
32 endif()
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
33
129
fe51b4fb5132 fix framework version
Alain Mazy <am@osimis.io>
parents: 128
diff changeset
34 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
35 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
36 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
37 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
38 set(ALLOW_DOWNLOADS ON)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
39
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
40
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
41 include(CheckIncludeFileCXX)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
42
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
43 # Download and setup the Orthanc framework
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
44
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
45 include(${CMAKE_SOURCE_DIR}/../Common/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
46 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
47
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
48 set(ENABLE_GOOGLE_TEST ON)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
49 set(ORTHANC_FRAMEWORK_PLUGIN ON)
22
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
50 set(ENABLE_MODULE_IMAGES OFF)
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
51 set(ENABLE_MODULE_JOBS OFF)
319d41a22de4 more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 18
diff changeset
52 set(ENABLE_MODULE_DICOM OFF)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
53
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
54 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
55 include(${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
56
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
57
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
58 add_definitions(
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
59 -DHAS_ORTHANC_EXCEPTION=1
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
60 -DORTHANC_ENABLE_LOGGING=1
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
61 -DGOOGLE_STORAGE_PLUGIN=1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
62 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
63 add_definitions(-DPLUGIN_VERSION="${PLUGIN_VERSION}")
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
64
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
65 include_directories(
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
66 ${ORTHANC_FRAMEWORK_ROOT}
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
67 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Include
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
68 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
69 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
70
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
71 find_package(CURL REQUIRED)
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
72 find_package(google_cloud_cpp_storage REQUIRED)
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
73 find_package(cryptopp CONFIG REQUIRED)
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
74
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
75 set(CMAKE_CXX_STANDARD 14)
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
76
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
77 set(COMMON_SOURCES
78
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
78 ${CMAKE_SOURCE_DIR}/../Common/IStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
79 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
80 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.cpp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
81 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
82 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.h
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
83 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
84 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.h
78
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
85 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.h
d7295e8678d7 renames
Alain Mazy <am@osimis.io>
parents: 77
diff changeset
86 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.cpp
83
431ab61b5760 /move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents: 78
diff changeset
87 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.h
431ab61b5760 /move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents: 78
diff changeset
88 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.cpp
15
2a02b21f0a19 migration + storage structure
Alain Mazy
parents: 8
diff changeset
89 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
90
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
91 ${ORTHANC_CORE_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
92 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
93
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
94 add_library(OrthancGoogleCloudStorage SHARED
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
95 GoogleStoragePlugin.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
96 GoogleStoragePlugin.h
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
97 ${CMAKE_SOURCE_DIR}/../Common/StoragePlugin.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
98
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
99 ${COMMON_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
100 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
101
132
573585bcc9ff fix test about presence of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 131
diff changeset
102 if (COMMAND DefineSourceBasenameForTarget)
130
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
103 DefineSourceBasenameForTarget(OrthancGoogleCloudStorage)
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
104 endif()
17f350ab12ca conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents: 129
diff changeset
105
105
0585b5de6be2 fix cmake warnings
Alain Mazy <am@osimis.io>
parents: 101
diff changeset
106
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
107 set_target_properties(OrthancGoogleCloudStorage PROPERTIES
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
108 VERSION ${PLUGIN_VERSION}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
109 SOVERSION ${PLUGIN_VERSION}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
110 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
111
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
112 target_link_libraries(OrthancGoogleCloudStorage
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
113 PRIVATE
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
114 CURL::libcurl
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
115 google-cloud-cpp::storage
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
116 google-cloud-cpp::experimental-storage-grpc
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
117 cryptopp::cryptopp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
118 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
119
131
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
120 install(
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
121 TARGETS OrthancGoogleCloudStorage
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
122 RUNTIME DESTINATION lib # Destination for Windows
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
123 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
124 )
9520a6d10992 added install step in CMake
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
125
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
126 add_executable(UnitTests
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
127 ${GOOGLE_TEST_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
128 ${COMMON_SOURCES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
129
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
130 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/EncryptionTests.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
131 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsMain.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
132 ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsGcsClient.cpp
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
133 )
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
134
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
135 target_link_libraries(UnitTests
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
136 PRIVATE
101
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
137 CURL::libcurl
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
138 google-cloud-cpp::storage
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
139 google-cloud-cpp::experimental-storage-grpc
57be7094d6c5 updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents: 83
diff changeset
140 cryptopp::cryptopp
1
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
141 ${GOOGLE_TEST_LIBRARIES}
fc26a8fc54d5 initial release
Alain Mazy <alain@mazy.be>
parents:
diff changeset
142 )