diff --git a/FDBLibTLS/CMakeLists.txt b/FDBLibTLS/CMakeLists.txt index cd22748648..62ea4d5cad 100644 --- a/FDBLibTLS/CMakeLists.txt +++ b/FDBLibTLS/CMakeLists.txt @@ -9,4 +9,4 @@ set(SRCS FDBLibTLSVerify.h) add_library(FDBLibTLS STATIC ${SRCS}) -target_link_libraries(FDBLibTLS PUBLIC LibreSSL boost_target PRIVATE flow) +target_link_libraries(FDBLibTLS PUBLIC OpenSSL::SSL boost_target PRIVATE flow) diff --git a/cmake/FDBComponents.cmake b/cmake/FDBComponents.cmake index 6ada101d39..817d173f4f 100644 --- a/cmake/FDBComponents.cmake +++ b/cmake/FDBComponents.cmake @@ -12,25 +12,28 @@ endif() # SSL ################################################################################ -set(DISABLE_TLS OFF CACHE BOOL "Don't try to find LibreSSL and always build without TLS support") +set(DISABLE_TLS OFF CACHE BOOL "Don't try to find OpenSSL and always build without TLS support") if(DISABLE_TLS) set(WITH_TLS OFF) else() set(OPENSSL_USE_STATIC_LIBS TRUE) find_package(OpenSSL) - if(NOT OPENSSL_FOUND) - set(LIBRESSL_USE_STATIC_LIBS TRUE) - find_package(LibreSSL) - if (LIBRESSL_FOUND) - add_library(OpenSSL::SSL ALIAS LibreSSL) - endif() - endif() - if(OPENSSL_FOUND OR LIBRESSL_FOUND) - set(WITH_TLS ON) - add_compile_options(-DHAVE_OPENSSL) + if(OPENSSL_FOUND) + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + CHECK_CXX_SOURCE_COMPILES( + "#include <openssl/crypto.h> + int main() { (void) OPENSSL_INIT_NO_ATEXIT; }" OPENSSL_HAS_NO_ATEXIT) + if(OPENSSL_HAS_NO_ATEXIT) + set(WITH_TLS ON) + add_compile_options(-DHAVE_OPENSSL) + else() + message(STATUS "An OpenSSL version was found, but it doesn't support OPENSSL_INIT_NO_ATEXIT - Will compile without TLS Support") + message(STATUS "You can set OPENSSL_ROOT_DIR to help cmake find it") + set(WITH_TLS OFF) + endif() else() - message(STATUS "Neither OpenSSL nor LibreSSL were found - Will compile without TLS Support") - message(STATUS "You can set OPENSSL_ROOT_DIR or LibreSSL_ROOT to the LibreSSL install directory to help cmake find it") + message(STATUS "OpenSSL was not found - Will compile without TLS Support") + message(STATUS "You can set OPENSSL_ROOT_DIR to help cmake find it") set(WITH_TLS OFF) endif() if(WIN32)