diff options
Diffstat (limited to 'cmake/Modules/SelectHTTPSBackend.cmake')
-rw-r--r-- | cmake/Modules/SelectHTTPSBackend.cmake | 57 |
1 files changed, 25 insertions, 32 deletions
diff --git a/cmake/Modules/SelectHTTPSBackend.cmake b/cmake/Modules/SelectHTTPSBackend.cmake index f9b0b1cdc..afbeac424 100644 --- a/cmake/Modules/SelectHTTPSBackend.cmake +++ b/cmake/Modules/SelectHTTPSBackend.cmake @@ -1,5 +1,3 @@ -# Select the backend to use - INCLUDE(SanitizeBool) # We try to find any packages our backends might use @@ -10,36 +8,31 @@ IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") FIND_PACKAGE(CoreFoundation) ENDIF() -# Auto-select TLS backend -SanitizeBool(USE_HTTPS) -IF (USE_HTTPS STREQUAL ON) - IF (SECURITY_FOUND) - IF (SECURITY_HAS_SSLCREATECONTEXT) - SET(HTTPS_BACKEND "SecureTransport") +IF(USE_HTTPS) + # Auto-select TLS backend + SanitizeBool(USE_HTTPS) + IF (USE_HTTPS STREQUAL ON) + IF (SECURITY_FOUND) + IF (SECURITY_HAS_SSLCREATECONTEXT) + SET(USE_HTTPS "SecureTransport") + ELSE() + MESSAGE(STATUS "Security framework is too old, falling back to OpenSSL") + SET(USE_HTTPS "OpenSSL") + ENDIF() + ELSEIF (WINHTTP) + SET(USE_HTTPS "WinHTTP") + ELSEIF(OPENSSL_FOUND) + SET(USE_HTTPS "OpenSSL") + ELSEIF(MBEDTLS_FOUND) + SET(USE_HTTPS "mbedTLS") ELSE() - MESSAGE(STATUS "Security framework is too old, falling back to OpenSSL") - SET(HTTPS_BACKEND "OpenSSL") + MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend." + "Please pass the backend name explicitly (-DUSE_HTTPS=backend)") ENDIF() - ELSEIF (WINHTTP) - SET(HTTPS_BACKEND "WinHTTP") - ELSEIF(OPENSSL_FOUND) - SET(HTTPS_BACKEND "OpenSSL") - ELSEIF(MBEDTLS_FOUND) - SET(HTTPS_BACKEND "mbedTLS") - ELSE() - MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend." - "Please pass the backend name explicitly (-DUSE_HTTPS=backend)") ENDIF() -ELSEIF(USE_HTTPS) - # HTTPS backend was explicitly set - SET(HTTPS_BACKEND ${USE_HTTPS}) -ELSE() - SET(HTTPS_BACKEND NO) -ENDIF() -IF(HTTPS_BACKEND) # Check that we can find what's required for the selected backend - IF (HTTPS_BACKEND STREQUAL "SecureTransport") + IF (USE_HTTPS STREQUAL "SecureTransport") IF (NOT COREFOUNDATION_FOUND) MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found") ENDIF() @@ -54,7 +47,7 @@ IF(HTTPS_BACKEND) LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR}) LIST(APPEND LIBGIT2_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) LIST(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) - ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL") + ELSEIF (USE_HTTPS STREQUAL "OpenSSL") IF (NOT OPENSSL_FOUND) MESSAGE(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found") ENDIF() @@ -64,7 +57,7 @@ IF(HTTPS_BACKEND) LIST(APPEND LIBGIT2_LIBS ${OPENSSL_LIBRARIES}) LIST(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS}) LIST(APPEND LIBGIT2_PC_REQUIRES "openssl") - ELSEIF(HTTPS_BACKEND STREQUAL "mbedTLS") + ELSEIF(USE_HTTPS STREQUAL "mbedTLS") IF (NOT MBEDTLS_FOUND) MESSAGE(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found") ENDIF() @@ -113,14 +106,14 @@ IF(HTTPS_BACKEND) # https://github.com/ARMmbed/mbedtls/issues/228 # For now, pass its link flags as our own LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES}) - ELSEIF (HTTPS_BACKEND STREQUAL "WinHTTP") + ELSEIF (USE_HTTPS STREQUAL "WinHTTP") # WinHTTP setup was handled in the WinHTTP-specific block above ELSE() - MESSAGE(FATAL_ERROR "Asked for backend ${HTTPS_BACKEND} but it wasn't found") + MESSAGE(FATAL_ERROR "Asked for backend ${USE_HTTPS} but it wasn't found") ENDIF() SET(GIT_HTTPS 1) - ADD_FEATURE_INFO(HTTPS GIT_HTTPS "using ${HTTPS_BACKEND}") + ADD_FEATURE_INFO(HTTPS GIT_HTTPS "using ${USE_HTTPS}") ELSE() SET(GIT_HTTPS 0) ADD_FEATURE_INFO(HTTPS NO "") |