| # Select a hash backend |
| |
| # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF |
| |
| IF(USE_SHA1 STREQUAL ON OR USE_SHA1 STREQUAL "CollisionDetection") |
| SET(SHA1_BACKEND "CollisionDetection") |
| ELSEIF(USE_SHA1 STREQUAL "HTTPS") |
| message("Checking HTTPS backend… ${HTTPS_BACKEND}") |
| IF(HTTPS_BACKEND STREQUAL "SecureTransport") |
| SET(SHA1_BACKEND "CommonCrypto") |
| ELSEIF(HTTPS_BACKEND STREQUAL "WinHTTP") |
| SET(SHA1_BACKEND "Win32") |
| ELSEIF(HTTPS_BACKEND) |
| SET(SHA1_BACKEND ${HTTPS_BACKEND}) |
| ELSE() |
| ENDIF() |
| IF(NOT HTTPS_BACKEND) |
| SET(SHA1_BACKEND "CollisionDetection") |
| ENDIF() |
| message(STATUS "Using SHA1 backend ${SHA1_BACKEND}") |
| ELSEIF(USE_SHA1 STREQUAL "Generic") |
| SET(SHA1_BACKEND "Generic") |
| # ELSEIF(NOT USE_SHA1) |
| ELSE() |
| MESSAGE(FATAL_ERROR "Invalid value for USE_SHA1: ${USE_SHA1}") |
| ENDIF() |
| |
| IF(SHA1_BACKEND STREQUAL "CollisionDetection") |
| SET(GIT_SHA1_COLLISIONDETECT 1) |
| ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1) |
| ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\") |
| ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\") |
| FILE(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*) |
| ELSEIF(SHA1_BACKEND STREQUAL "OpenSSL") |
| # OPENSSL_FOUND should already be set, we're checking HTTPS_BACKEND |
| |
| SET(GIT_SHA1_OPENSSL 1) |
| IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
| LIST(APPEND LIBGIT2_PC_LIBS "-lssl") |
| ELSE() |
| LIST(APPEND LIBGIT2_PC_REQUIRES "openssl") |
| ENDIF() |
| FILE(GLOB SRC_SHA1 hash/sha1/openssl.*) |
| ELSEIF(SHA1_BACKEND STREQUAL "CommonCrypto") |
| SET(GIT_SHA1_COMMON_CRYPTO 1) |
| FILE(GLOB SRC_SHA1 hash/sha1/common_crypto.*) |
| ELSEIF(SHA1_BACKEND STREQUAL "mbedTLS") |
| SET(GIT_SHA1_MBEDTLS 1) |
| FILE(GLOB SRC_SHA1 hash/sha1/mbedtls.*) |
| LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR}) |
| LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES}) |
| # mbedTLS has no pkgconfig file, hence we can't require it |
| # https://github.com/ARMmbed/mbedtls/issues/228 |
| # For now, pass its link flags as our own |
| LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES}) |
| ELSEIF(SHA1_BACKEND STREQUAL "Win32") |
| SET(GIT_SHA1_WIN32 1) |
| FILE(GLOB SRC_SHA1 hash/sha1/win32.*) |
| ELSEIF(SHA1_BACKEND STREQUAL "Generic") |
| FILE(GLOB SRC_SHA1 hash/sha1/generic.*) |
| # ELSEIF(NOT USE_SHA1) |
| ELSE() |
| MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${SHA1_BACKEND}") |
| ENDIF() |
| |
| ADD_FEATURE_INFO(SHA ON "using ${SHA1_BACKEND}") |