Mercurial > hg > orthanc-object-storage
annotate Azure/CMakeLists.txt @ 202:bb19f1ed9cd9 2.4.0
2.4.0
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 26 Jun 2024 13:10:38 +0200 |
parents | df0b6998fd27 |
children | 55fab84a0674 |
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 | 21 |
22 project(OrthancAzureBlobStorage) | |
23 | |
202 | 24 set(PLUGIN_VERSION "2.4.0") |
1 | 25 |
129 | 26 if (PLUGIN_VERSION STREQUAL "mainline") |
27 set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline") | |
28 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") | |
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 | 31 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") |
129 | 32 endif() |
1 | 33 |
129 | 34 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc framework (can be \"system\", \"hg\", \"archive\", \"web\" or \"path\")") |
35 set(ORTHANC_FRAMEWORK_VERSION "${ORTHANC_FRAMEWORK_DEFAULT_VERSION}" CACHE STRING "Version of the Orthanc framework") | |
36 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"") | |
37 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"") | |
120
12ea59c97c40
sync orthanc folder + show timings + EnableAwsSdkLogs
Alain Mazy <am@osimis.io>
parents:
115
diff
changeset
|
38 set(ALLOW_DOWNLOADS ON) |
1 | 39 |
40 include(CheckIncludeFileCXX) | |
41 | |
42 # Download and setup the Orthanc framework | |
43 | |
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
|
44 include(${CMAKE_SOURCE_DIR}/../Common/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) |
15 | 45 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake) |
1 | 46 |
47 set(ENABLE_GOOGLE_TEST ON) | |
48 set(ORTHANC_FRAMEWORK_PLUGIN ON) | |
22
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
49 set(ENABLE_MODULE_IMAGES OFF) |
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
50 set(ENABLE_MODULE_JOBS OFF) |
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
51 set(ENABLE_MODULE_DICOM OFF) |
1 | 52 |
15 | 53 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
|
54 include(${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake) |
1 | 55 |
56 add_definitions( | |
57 -DHAS_ORTHANC_EXCEPTION=1 | |
15 | 58 -DORTHANC_ENABLE_LOGGING=1 |
1 | 59 -DAZURE_STORAGE_PLUGIN=1 |
60 ) | |
61 add_definitions(-DPLUGIN_VERSION="${PLUGIN_VERSION}") | |
62 | |
63 include_directories( | |
15 | 64 ${ORTHANC_FRAMEWORK_ROOT} |
65 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Include | |
66 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common | |
1 | 67 ) |
68 | |
69 find_package(cryptopp CONFIG REQUIRED) | |
70 | |
71 # Azure stuff (from https://github.com/Microsoft/vcpkg/issues/6277) | |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
72 find_package(azure-storage-blobs-cpp CONFIG REQUIRED) |
1 | 73 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
74 # if (NOT WIN32) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
75 # find_package(cpprestsdk CONFIG REQUIRED) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
76 # find_path(WASTORAGE_INCLUDE_DIR was/blob.h) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
77 # find_library(WASTORAGE_LIBRARY azurestorage) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
78 # find_package(Boost REQUIRED COMPONENTS log) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
79 # find_library(UUID_LIBRARY uuid) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
80 # find_package(LibXml2 REQUIRED) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
81 # else() # inspired from https://github.com/phongcao/azure-storage-cpp-sas-sample/blob/master/CMakeLists.txt |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
82 # find_path(WASTORAGE_INCLUDE_DIR was/blob.h) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
83 # find_library(CPPREST_LIBRARY |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
84 # NAMES cpprest cpprest_2_10) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
85 # find_library(WASTORAGE_LIBRARY wastorage) |
34 | 86 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
87 # set (CMAKE_CXX_STANDARD 11) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
88 # set (CMAKE_CXX_STANDARD_REQUIRED ON) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
89 # set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHa") |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
90 # set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
91 # set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF") |
89 | 92 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
93 # message(INFO "WASTORAGE_INCLUDE_DIR ${WASTORAGE_INCLUDE_DIR}") |
34 | 94 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
95 # add_definitions(-D_NO_WASTORAGE_API=1) # from https://github.com/Azure/azure-storage-cpp/issues/263 |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
96 # endif() |
34 | 97 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
98 # include_directories(${WASTORAGE_INCLUDE_DIR}) |
101
57be7094d6c5
updated Google plugin for latest SDK
Alain Mazy <am@osimis.io>
parents:
100
diff
changeset
|
99 set(CMAKE_CXX_STANDARD 14) |
1 | 100 |
101 set(COMMON_SOURCES | |
78 | 102 ${CMAKE_SOURCE_DIR}/../Common/IStorage.h |
103 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.h | |
104 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.cpp | |
1 | 105 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.cpp |
106 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.h | |
107 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.cpp | |
108 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.h | |
78 | 109 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.h |
110 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.cpp | |
83
431ab61b5760
/move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents:
78
diff
changeset
|
111 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.h |
431ab61b5760
/move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents:
78
diff
changeset
|
112 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.cpp |
15 | 113 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp |
1 | 114 |
115 ${ORTHANC_CORE_SOURCES} | |
116 ) | |
117 | |
118 add_library(OrthancAzureBlobStorage SHARED | |
119 AzureBlobStoragePlugin.cpp | |
120 AzureBlobStoragePlugin.h | |
121 ${CMAKE_SOURCE_DIR}/../Common/StoragePlugin.cpp | |
122 | |
123 ${COMMON_SOURCES} | |
124 ) | |
125 | |
132
573585bcc9ff
fix test about presence of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
126 if (COMMAND DefineSourceBasenameForTarget) |
130
17f350ab12ca
conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents:
129
diff
changeset
|
127 DefineSourceBasenameForTarget(OrthancAzureBlobStorage) |
17f350ab12ca
conditional usage of DefineSourceBasenameForTarget
Alain Mazy <am@osimis.io>
parents:
129
diff
changeset
|
128 endif() |
105 | 129 |
1 | 130 set_target_properties(OrthancAzureBlobStorage PROPERTIES |
131 VERSION ${PLUGIN_VERSION} | |
132 SOVERSION ${PLUGIN_VERSION} | |
133 ) | |
134 | |
34 | 135 if (NOT WIN32) |
136 | |
137 target_link_libraries(OrthancAzureBlobStorage | |
138 PRIVATE | |
91
7bf31db5497e
fix cryptopp lib name for Linux build
Alain Mazy <am@osimis.io>
parents:
89
diff
changeset
|
139 cryptopp::cryptopp |
100 | 140 Azure::azure-storage-blobs |
34 | 141 ${UUID_LIBRARY} |
142 ${LIBXML2_LIBRARIES} | |
143 ) | |
144 else() | |
145 target_link_libraries(OrthancAzureBlobStorage | |
146 PRIVATE | |
100 | 147 cryptopp::cryptopp |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
148 Azure::azure-storage-blobs |
34 | 149 ${OPENSSL_LIBRARY} |
150 Winhttp.lib | |
151 Crypt32.lib | |
152 xmllite.lib | |
1 | 153 ) |
154 | |
34 | 155 endif() |
1 | 156 |
131 | 157 install( |
158 TARGETS OrthancAzureBlobStorage | |
159 RUNTIME DESTINATION lib # Destination for Windows | |
160 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
161 ) | |
1 | 162 |
163 | |
34 | 164 # add_executable(UnitTests |
165 # ${GOOGLE_TEST_SOURCES} | |
166 # ${COMMON_SOURCES} | |
167 | |
168 # ${CMAKE_SOURCE_DIR}/../UnitTestsSources/EncryptionTests.cpp | |
169 # ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsMain.cpp | |
170 # ) | |
1 | 171 |
34 | 172 # target_link_libraries(UnitTests |
173 # PRIVATE | |
174 # cryptopp-static | |
175 # ${GOOGLE_TEST_LIBRARIES} | |
176 # ${WASTORAGE_LIBRARY} | |
177 # # ${UUID_LIBRARY} | |
178 # # ${Boost_LIBRARIES} | |
179 # # ${LIBXML2_LIBRARIES} | |
180 # cpprestsdk::cpprest | |
181 # ) |