From da65b7edac9467265ea6cd762fbf20f5397e054b Mon Sep 17 00:00:00 2001 From: Harry Mallon Date: Fri, 21 Oct 2022 16:59:18 +0100 Subject: [PATCH] Fix OpenSSL Crypto hunter-build and linking on Linux --- CMakeLists.txt | 4 ++-- cmake/Findcrypto.cmake | 22 ++++++++++++++++++++++ cmake/external_dependencies.cmake | 3 +++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c952c8b0520..e942592b055 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,8 +131,8 @@ set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG "@") include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.23.314.tar.gz" - SHA1 "95c47c92f68edb091b5d6d18924baabe02a6962a" + URL "https://github.com/cpp-pm/hunter/archive/v0.24.7.tar.gz" + SHA1 "908ddcb223f25fa155315baae64ce0ab48a38bf7" ) if(COMMAND apply_pre_project_platform_settings) diff --git a/cmake/Findcrypto.cmake b/cmake/Findcrypto.cmake index 5425280d74f..0541ae26667 100644 --- a/cmake/Findcrypto.cmake +++ b/cmake/Findcrypto.cmake @@ -30,6 +30,28 @@ if (TARGET crypto OR TARGET AWS::crypto) message(STATUS "crypto Include Dir: ${crypto_INCLUDE_DIR}") set(CRYPTO_FOUND true) set(crypto_FOUND true) + +elseif(TARGET OpenSSL::Crypto) + set(CRYPTO_FOUND true) + set(crypto_FOUND true) + + get_target_property(crypto_INCLUDE_DIR OpenSSL::Crypto INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(crypto_LIBRARY OpenSSL::Crypto IMPORTED_LOCATION) + + message(STATUS "LibCrypto from OpenSSL::Crypto") + message(STATUS "LibCrypto Include Dir: ${crypto_INCLUDE_DIR}") + message(STATUS "LibCrypto Lib: ${crypto_LIBRARY}") + + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + add_library(AWS::crypto UNKNOWN IMPORTED) + set_target_properties(AWS::crypto PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${crypto_INCLUDE_DIR}") + set_target_properties(AWS::crypto PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${crypto_LIBRARY}") + add_dependencies(AWS::crypto Threads::Threads) + else() find_path(crypto_INCLUDE_DIR NAMES openssl/crypto.h diff --git a/cmake/external_dependencies.cmake b/cmake/external_dependencies.cmake index 09f42c46816..f4348e174cd 100644 --- a/cmake/external_dependencies.cmake +++ b/cmake/external_dependencies.cmake @@ -33,6 +33,9 @@ elseif(ENABLE_OPENSSL_ENCRYPTION) set(USE_OPENSSL ON) message(STATUS " Building Openssl as part of AWS SDK") else() + hunter_add_package(OpenSSL) + find_package(OpenSSL REQUIRED) + find_package(crypto REQUIRED) endif() set(CRYPTO_LIBS ${CRYPTO_TARGET_NAME} ${ZLIB_LIBRARIES})