summaryrefslogtreecommitdiff
path: root/plugin/aws_key_management
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2017-05-17 19:56:51 +0000
committerVladislav Vaintroub <wlad@mariadb.com>2017-05-18 11:01:34 +0000
commitd0eb4ee96b32caec1d6bba6dc376016b2bf2ac0f (patch)
treeec23c637428eaaf419b22bd44270ce2fa8ce9d55 /plugin/aws_key_management
parent9dffa3072cfb5e42f361660f37d1e0c7a259afaf (diff)
downloadmariadb-git-d0eb4ee96b32caec1d6bba6dc376016b2bf2ac0f.tar.gz
Backport aws kms build fixes from 10.2
Diffstat (limited to 'plugin/aws_key_management')
-rw-r--r--plugin/aws_key_management/CMakeLists.txt35
1 files changed, 29 insertions, 6 deletions
diff --git a/plugin/aws_key_management/CMakeLists.txt b/plugin/aws_key_management/CMakeLists.txt
index 1ad96dd9f19..00e788ffbd5 100644
--- a/plugin/aws_key_management/CMakeLists.txt
+++ b/plugin/aws_key_management/CMakeLists.txt
@@ -60,7 +60,6 @@ ENDIF()
FIND_LIBRARY(AWS_CPP_SDK_CORE NAMES aws-cpp-sdk-core PATH_SUFFIXES "${SDK_INSTALL_BINARY_PREFIX}")
FIND_LIBRARY(AWS_CPP_SDK_KMS NAMES aws-cpp-sdk-kms PATH_SUFFIXES "${SDK_INSTALL_BINARY_PREFIX}")
-SET(CMAKE_REQUIRED_FLAGS ${CXX11_FLAGS})
FIND_PATH(AWS_CPP_SDK_INCLUDE_DIR NAMES aws/kms/KMSClient.h)
IF(AWS_CPP_SDK_CORE AND AWS_CPP_SDK_KMS AND AWS_CPP_SDK_INCLUDE_DIR)
@@ -68,6 +67,10 @@ IF(AWS_CPP_SDK_CORE AND AWS_CPP_SDK_KMS AND AWS_CPP_SDK_INCLUDE_DIR)
INCLUDE_DIRECTORIES(${AWS_CPP_SDK_INCLUDE_DIR})
SET(AWS_SDK_LIBS ${AWS_CPP_SDK_CORE} ${AWS_CPP_SDK_KMS})
ELSE()
+ OPTION(AWS_SDK_EXTERNAL_PROJECT "Allow download and build AWS C++ SDK" OFF)
+ IF(NOT AWS_SDK_EXTERNAL_PROJECT)
+ SKIP_AWS_PLUGIN("AWS_SDK_EXTERNAL_PROJECT is not set")
+ ENDIF()
# Build from source, using ExternalProject_Add
# AWS C++ SDK requires cmake 2.8.12
IF(CMAKE_VERSION VERSION_LESS "2.8.12")
@@ -93,6 +96,10 @@ ELSE()
IF(NOT UUID_LIBRARIES)
SKIP_AWS_PLUGIN("AWS C++ SDK requires uuid development package")
ENDIF()
+ FIND_PACKAGE(OpenSSL)
+ IF(NOT OPENSSL_FOUND)
+ SKIP_AWS_PLUGIN("AWS C++ SDK requires openssl development package")
+ ENDIF()
ENDIF()
ENDIF()
IF(MSVC)
@@ -109,15 +116,27 @@ ELSE()
ADD_LIBRARY(${lib} STATIC IMPORTED GLOBAL)
ADD_DEPENDENCIES(${lib} aws_sdk_cpp)
SET(loc "${CMAKE_CURRENT_BINARY_DIR}/aws_sdk_cpp/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}")
- SET(byproducts ${byproducts} BUILD_BYPRODUCTS ${loc})
+ IF(CMAKE_VERSION VERSION_GREATER "3.1")
+ SET(byproducts ${byproducts} BUILD_BYPRODUCTS ${loc})
+ ENDIF()
SET_TARGET_PROPERTIES(${lib} PROPERTIES IMPORTED_LOCATION ${loc})
ENDFOREACH()
+ # To be compatible with older cmake, we use older version of the SDK
+ # We increase the version for macs however, so the newest mac could built it.
+ IF(APPLE)
+ SET(GIT_TAG "1.0.100")
+ ELSEIF(_OPENSSL_VERSION VERSION_EQUAL "1.1")
+ SET(GIT_TAG "1.0.114")
+ ELSE()
+ SET(GIT_TAG "1.0.8")
+ ENDIF()
+
SET(AWS_SDK_PATCH_COMMAND )
ExternalProject_Add(
aws_sdk_cpp
GIT_REPOSITORY "https://github.com/awslabs/aws-sdk-cpp.git"
- GIT_TAG "1.0.8"
+ GIT_TAG ${GIT_TAG}
UPDATE_COMMAND ""
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp"
${byproducts}
@@ -125,6 +144,7 @@ ELSE()
-DBUILD_ONLY=kms
-DBUILD_SHARED_LIBS=OFF
-DFORCE_SHARED_CRT=OFF
+ -DENABLE_TESTING=OFF
"-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} ${PIC_FLAG}"
"-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${PIC_FLAG}"
"-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} ${PIC_FLAG}"
@@ -144,12 +164,15 @@ ELSE()
ENDIF()
ADD_DEFINITIONS(${SSL_DEFINES}) # Need to know whether openssl should be initialized
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}")
-
+IF(CMAKE_VERSION GREATER "3.0")
+ SET(CMAKE_CXX_STANDARD 11)
+ELSE()
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}")
+ENDIF()
IF(WIN32)
SET(AWS_CPP_SDK_DEPENDENCIES bcrypt winhttp wininet userenv version)
ELSE()
- SET(AWS_CPP_SDK_DEPENDENCIES ${SSL_LIBRARIES} ${CURL_LIBRARIES} ${UUID_LIBRARIES})
+ SET(AWS_CPP_SDK_DEPENDENCIES ${OPENSSL_LIBRARIES} ${CURL_LIBRARIES} ${UUID_LIBRARIES})
ENDIF()
TARGET_LINK_LIBRARIES(aws_key_management ${AWS_SDK_LIBS} ${AWS_CPP_SDK_DEPENDENCIES})