1
0
mirror of https://github.com/apple/foundationdb.git synced 2025-05-23 15:36:56 +08:00

Don't config TLS if OpenSSL is missing OPENSSL_INIT_NO_ATEXIT

This commit is contained in:
Andrew Noyes 2020-04-25 17:59:17 -07:00
parent cd95c8e191
commit fee9a5117f
2 changed files with 17 additions and 14 deletions

@ -9,4 +9,4 @@ set(SRCS
FDBLibTLSVerify.h) FDBLibTLSVerify.h)
add_library(FDBLibTLS STATIC ${SRCS}) 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)

@ -12,25 +12,28 @@ endif()
# SSL # 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) if(DISABLE_TLS)
set(WITH_TLS OFF) set(WITH_TLS OFF)
else() else()
set(OPENSSL_USE_STATIC_LIBS TRUE) set(OPENSSL_USE_STATIC_LIBS TRUE)
find_package(OpenSSL) find_package(OpenSSL)
if(NOT OPENSSL_FOUND) if(OPENSSL_FOUND)
set(LIBRESSL_USE_STATIC_LIBS TRUE) set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
find_package(LibreSSL) CHECK_CXX_SOURCE_COMPILES(
if (LIBRESSL_FOUND) "#include <openssl/crypto.h>
add_library(OpenSSL::SSL ALIAS LibreSSL) int main() { (void) OPENSSL_INIT_NO_ATEXIT; }" OPENSSL_HAS_NO_ATEXIT)
endif() if(OPENSSL_HAS_NO_ATEXIT)
endif() set(WITH_TLS ON)
if(OPENSSL_FOUND OR LIBRESSL_FOUND) add_compile_options(-DHAVE_OPENSSL)
set(WITH_TLS ON) else()
add_compile_options(-DHAVE_OPENSSL) 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() else()
message(STATUS "Neither OpenSSL nor LibreSSL were found - Will compile without TLS Support") message(STATUS "OpenSSL was not 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 "You can set OPENSSL_ROOT_DIR to help cmake find it")
set(WITH_TLS OFF) set(WITH_TLS OFF)
endif() endif()
if(WIN32) if(WIN32)