1 # Select a hash backend
5 # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
8 IF(USE_SHA1 STREQUAL ON)
9 SET(USE_SHA1 "CollisionDetection")
10 ELSEIF(USE_SHA1 STREQUAL "HTTPS")
11 IF(USE_HTTPS STREQUAL "SecureTransport")
12 SET(USE_SHA1 "CommonCrypto")
13 ELSEIF(USE_HTTPS STREQUAL "WinHTTP")
16 SET(USE_SHA1 ${USE_HTTPS})
18 SET(USE_SHA1 "CollisionDetection")
22 IF(USE_SHA1 STREQUAL "CollisionDetection")
23 SET(GIT_SHA1_COLLISIONDETECT 1)
24 ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1)
25 ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
26 ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
27 FILE(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
28 ELSEIF(USE_SHA1 STREQUAL "OpenSSL")
29 # OPENSSL_FOUND should already be set, we're checking USE_HTTPS
31 SET(GIT_SHA1_OPENSSL 1)
32 IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
33 LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
35 LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
37 FILE(GLOB SRC_SHA1 hash/sha1/openssl.*)
38 ELSEIF(USE_SHA1 STREQUAL "CommonCrypto")
39 SET(GIT_SHA1_COMMON_CRYPTO 1)
40 FILE(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
41 ELSEIF(USE_SHA1 STREQUAL "mbedTLS")
42 SET(GIT_SHA1_MBEDTLS 1)
43 FILE(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
44 LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
45 LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES})
46 # mbedTLS has no pkgconfig file, hence we can't require it
47 # https://github.com/ARMmbed/mbedtls/issues/228
48 # For now, pass its link flags as our own
49 LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
50 ELSEIF(USE_SHA1 STREQUAL "Win32")
52 FILE(GLOB SRC_SHA1 hash/sha1/win32.*)
53 ELSEIF(USE_SHA1 STREQUAL "Generic")
54 FILE(GLOB SRC_SHA1 hash/sha1/generic.*)
56 MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
59 list(APPEND SRC_SHA1 "hash/sha1.h")
62 ADD_FEATURE_INFO(SHA ON "using ${USE_SHA1}")