diff Aws/Graveyard/AwsExternalProject.cmake @ 56:b922ae86bbe1

full static linking against AWS SDK
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 Jun 2021 15:00:36 +0200
parents
children 3c7e0374f28e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Aws/Graveyard/AwsExternalProject.cmake	Tue Jun 22 15:00:36 2021 +0200
@@ -0,0 +1,70 @@
+# Cloud storage plugins for Orthanc
+# Copyright (C) 2020-2021 Osimis S.A., Belgium
+#
+# This program is free software: you can redistribute it and/or
+# modify it under the terms of the GNU Affero General Public License
+# as published by the Free Software Foundation, either version 3 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+##
+## Building the C++ SDK for Amazon AWS
+## WARNING: This is *not* compatible with Ninja (yet)
+##
+if (STATIC_AWS_CLIENT)
+  set(Flags -DBUILD_SHARED_LIBS=OFF)  # Create static library
+else()
+  set(Flags -DBUILD_SHARED_LIBS=ON)
+endif()
+
+include(ExternalProject)
+externalproject_add(AwsSdkCpp
+  GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp
+  GIT_TAG 1.8.127
+
+  CMAKE_ARGS
+  -DBUILD_ONLY=s3   #-DBUILD_ONLY=s3;transfer
+  -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+  -DENABLE_TESTING=OFF
+  ${Flags}
+
+  UPDATE_COMMAND ""    # Don't run "cmake" on AWS each time "make/ninja" is run
+  INSTALL_COMMAND ""   # No install
+  )
+
+ExternalProject_Get_Property(AwsSdkCpp SOURCE_DIR)
+include_directories(
+  ${SOURCE_DIR}/aws-cpp-sdk-core/include/
+  ${SOURCE_DIR}/aws-cpp-sdk-s3/include/
+  )
+
+ExternalProject_Get_Property(AwsSdkCpp BINARY_DIR)
+if (STATIC_AWS_CLIENT)
+  set(AWSSDK_LINK_LIBRARIES
+    ${BINARY_DIR}/aws-cpp-sdk-s3/libaws-cpp-sdk-s3.a
+    ${BINARY_DIR}/aws-cpp-sdk-core/libaws-cpp-sdk-core.a
+    ${BINARY_DIR}/.deps/install/lib/libaws-c-event-stream.a
+    ${BINARY_DIR}/.deps/install/lib/libaws-checksums.a
+    ${BINARY_DIR}/.deps/install/lib/libaws-c-common.a
+    curl
+    crypto
+    )
+  if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    list(APPEND AWSSDK_LINK_LIBRARIES
+      gcc   # for "undefined reference to `__cpu_model'" on Ubuntu 16.04
+      )
+  endif()
+else()
+  set(AWSSDK_LINK_LIBRARIES
+    ${BINARY_DIR}/aws-cpp-sdk-core/libaws-cpp-sdk-core.so
+    ${BINARY_DIR}/aws-cpp-sdk-s3/libaws-cpp-sdk-s3.so
+    )
+endif()