]> git.proxmox.com Git - libgit2.git/blame - cmake/SelectHashes.cmake
New upstream version 1.3.0+dfsg.1
[libgit2.git] / cmake / SelectHashes.cmake
CommitLineData
22a2d3d5
UG
1# Select a hash backend
2
3INCLUDE(SanitizeBool)
4
5# USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
6
7SanitizeBool(USE_SHA1)
8IF(USE_SHA1 STREQUAL ON)
9 SET(USE_SHA1 "CollisionDetection")
10ELSEIF(USE_SHA1 STREQUAL "HTTPS")
11 IF(USE_HTTPS STREQUAL "SecureTransport")
12 SET(USE_SHA1 "CommonCrypto")
13 ELSEIF(USE_HTTPS STREQUAL "WinHTTP")
14 SET(USE_SHA1 "Win32")
15 ELSEIF(USE_HTTPS)
16 SET(USE_SHA1 ${USE_HTTPS})
17 ELSE()
18 SET(USE_SHA1 "CollisionDetection")
19 ENDIF()
20ENDIF()
21
22IF(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/*)
28ELSEIF(USE_SHA1 STREQUAL "OpenSSL")
29 # OPENSSL_FOUND should already be set, we're checking USE_HTTPS
30
31 SET(GIT_SHA1_OPENSSL 1)
32 IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
33 LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
34 ELSE()
35 LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
36 ENDIF()
37 FILE(GLOB SRC_SHA1 hash/sha1/openssl.*)
38ELSEIF(USE_SHA1 STREQUAL "CommonCrypto")
39 SET(GIT_SHA1_COMMON_CRYPTO 1)
40 FILE(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
41ELSEIF(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})
50ELSEIF(USE_SHA1 STREQUAL "Win32")
51 SET(GIT_SHA1_WIN32 1)
52 FILE(GLOB SRC_SHA1 hash/sha1/win32.*)
53ELSEIF(USE_SHA1 STREQUAL "Generic")
54 FILE(GLOB SRC_SHA1 hash/sha1/generic.*)
55ELSE()
56 MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
57ENDIF()
58
c25aa7cd 59list(APPEND SRC_SHA1 "hash/sha1.h")
22a2d3d5
UG
60list(SORT SRC_SHA1)
61
62ADD_FEATURE_INFO(SHA ON "using ${USE_SHA1}")