Mercurial > hg > orthanc-object-storage
annotate Azure/CMakeLists.txt @ 99:f4e05641c108
rewrote using the latest azure C++ sdk
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 20 Jul 2023 15:09:57 +0200 |
parents | 7bf31db5497e |
children | 16f0abc677c5 |
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 |
1 | 18 cmake_minimum_required(VERSION 2.8) |
19 | |
20 project(OrthancAzureBlobStorage) | |
21 | |
52 | 22 set(PLUGIN_VERSION "mainline") |
1 | 23 |
24 include(CheckIncludeFileCXX) | |
25 | |
26 set(ORTHANC_FRAMEWORK_SOURCE "hg" CACHE STRING "orthanc source") | |
49 | 27 set(ORTHANC_FRAMEWORK_VERSION "1.9.2" CACHE STRING "orthanc framework version") |
1 | 28 set(ALLOW_DOWNLOADS ON) |
29 | |
30 # Download and setup the Orthanc framework | |
31 | |
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
|
32 include(${CMAKE_SOURCE_DIR}/../Common/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) |
15 | 33 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake) |
1 | 34 |
35 set(ENABLE_GOOGLE_TEST ON) | |
36 set(ORTHANC_FRAMEWORK_PLUGIN ON) | |
22
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
37 set(ENABLE_MODULE_IMAGES OFF) |
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
38 set(ENABLE_MODULE_JOBS OFF) |
319d41a22de4
more lightweight use of Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
18
diff
changeset
|
39 set(ENABLE_MODULE_DICOM OFF) |
1 | 40 |
15 | 41 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
|
42 include(${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake) |
1 | 43 |
44 add_definitions( | |
45 -DHAS_ORTHANC_EXCEPTION=1 | |
15 | 46 -DORTHANC_ENABLE_LOGGING=1 |
1 | 47 -DAZURE_STORAGE_PLUGIN=1 |
48 ) | |
49 add_definitions(-DPLUGIN_VERSION="${PLUGIN_VERSION}") | |
50 | |
51 include_directories( | |
15 | 52 ${ORTHANC_FRAMEWORK_ROOT} |
53 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Include | |
54 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common | |
1 | 55 ) |
56 | |
57 find_package(cryptopp CONFIG REQUIRED) | |
58 | |
59 # 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
|
60 find_package(azure-storage-blobs-cpp CONFIG REQUIRED) |
1 | 61 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
62 # if (NOT WIN32) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
63 # find_package(cpprestsdk CONFIG REQUIRED) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
64 # 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
|
65 # find_library(WASTORAGE_LIBRARY azurestorage) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
66 # find_package(Boost REQUIRED COMPONENTS log) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
67 # find_library(UUID_LIBRARY uuid) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
68 # find_package(LibXml2 REQUIRED) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
69 # 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
|
70 # 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
|
71 # find_library(CPPREST_LIBRARY |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
72 # NAMES cpprest cpprest_2_10) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
73 # find_library(WASTORAGE_LIBRARY wastorage) |
34 | 74 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
75 # set (CMAKE_CXX_STANDARD 11) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
76 # set (CMAKE_CXX_STANDARD_REQUIRED ON) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
77 # 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
|
78 # 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
|
79 # set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF") |
89 | 80 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
81 # message(INFO "WASTORAGE_INCLUDE_DIR ${WASTORAGE_INCLUDE_DIR}") |
34 | 82 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
83 # 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
|
84 # endif() |
34 | 85 |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
86 # include_directories(${WASTORAGE_INCLUDE_DIR}) |
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
87 set (CMAKE_CXX_STANDARD 14) |
1 | 88 |
89 set(COMMON_SOURCES | |
78 | 90 ${CMAKE_SOURCE_DIR}/../Common/IStorage.h |
91 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.h | |
92 ${CMAKE_SOURCE_DIR}/../Common/BaseStorage.cpp | |
1 | 93 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.cpp |
94 ${CMAKE_SOURCE_DIR}/../Common/EncryptionHelpers.h | |
95 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.cpp | |
96 ${CMAKE_SOURCE_DIR}/../Common/EncryptionConfigurator.h | |
78 | 97 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.h |
98 ${CMAKE_SOURCE_DIR}/../Common/FileSystemStorage.cpp | |
83
431ab61b5760
/move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents:
78
diff
changeset
|
99 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.h |
431ab61b5760
/move-storage when HybridMode is enabled
Alain Mazy <am@osimis.io>
parents:
78
diff
changeset
|
100 ${CMAKE_SOURCE_DIR}/../Common/MoveStorageJob.cpp |
15 | 101 ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp |
1 | 102 |
103 ${ORTHANC_CORE_SOURCES} | |
104 ) | |
105 | |
106 add_library(OrthancAzureBlobStorage SHARED | |
107 AzureBlobStoragePlugin.cpp | |
108 AzureBlobStoragePlugin.h | |
109 ${CMAKE_SOURCE_DIR}/../Common/StoragePlugin.cpp | |
110 | |
111 ${COMMON_SOURCES} | |
112 ) | |
113 | |
114 set_target_properties(OrthancAzureBlobStorage PROPERTIES | |
115 VERSION ${PLUGIN_VERSION} | |
116 SOVERSION ${PLUGIN_VERSION} | |
117 ) | |
118 | |
34 | 119 if (NOT WIN32) |
120 | |
121 target_link_libraries(OrthancAzureBlobStorage | |
122 PRIVATE | |
91
7bf31db5497e
fix cryptopp lib name for Linux build
Alain Mazy <am@osimis.io>
parents:
89
diff
changeset
|
123 cryptopp::cryptopp |
34 | 124 ${WASTORAGE_LIBRARY} |
125 ${UUID_LIBRARY} | |
126 ${Boost_LIBRARIES} | |
127 ${LIBXML2_LIBRARIES} | |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
128 Azure::azure-storage-blobs |
34 | 129 ) |
130 else() | |
131 target_link_libraries(OrthancAzureBlobStorage | |
132 PRIVATE | |
99
f4e05641c108
rewrote using the latest azure C++ sdk
Alain Mazy <am@osimis.io>
parents:
91
diff
changeset
|
133 Azure::azure-storage-blobs |
34 | 134 ${OPENSSL_LIBRARY} |
135 ${WASTORAGE_LIBRARY} | |
136 ${CPPREST_LIBRARY} | |
137 Winhttp.lib | |
138 Crypt32.lib | |
139 xmllite.lib | |
1 | 140 ) |
141 | |
34 | 142 endif() |
1 | 143 |
144 | |
34 | 145 # add_executable(UnitTests |
146 # ${GOOGLE_TEST_SOURCES} | |
147 # ${COMMON_SOURCES} | |
148 | |
149 # ${CMAKE_SOURCE_DIR}/../UnitTestsSources/EncryptionTests.cpp | |
150 # ${CMAKE_SOURCE_DIR}/../UnitTestsSources/UnitTestsMain.cpp | |
151 # ) | |
1 | 152 |
34 | 153 # target_link_libraries(UnitTests |
154 # PRIVATE | |
155 # cryptopp-static | |
156 # ${GOOGLE_TEST_LIBRARIES} | |
157 # ${WASTORAGE_LIBRARY} | |
158 # # ${UUID_LIBRARY} | |
159 # # ${Boost_LIBRARIES} | |
160 # # ${LIBXML2_LIBRARIES} | |
161 # cpprestsdk::cpprest | |
162 # ) |