]> git.proxmox.com Git - libgit2.git/blob - cmake/SelectHashes.cmake
New upstream version 1.3.0+dfsg.1
[libgit2.git] / cmake / SelectHashes.cmake
1 # Select a hash backend
2
3 INCLUDE(SanitizeBool)
4
5 # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
6
7 SanitizeBool(USE_SHA1)
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")
14 SET(USE_SHA1 "Win32")
15 ELSEIF(USE_HTTPS)
16 SET(USE_SHA1 ${USE_HTTPS})
17 ELSE()
18 SET(USE_SHA1 "CollisionDetection")
19 ENDIF()
20 ENDIF()
21
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
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.*)
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")
51 SET(GIT_SHA1_WIN32 1)
52 FILE(GLOB SRC_SHA1 hash/sha1/win32.*)
53 ELSEIF(USE_SHA1 STREQUAL "Generic")
54 FILE(GLOB SRC_SHA1 hash/sha1/generic.*)
55 ELSE()
56 MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
57 ENDIF()
58
59 list(APPEND SRC_SHA1 "hash/sha1.h")
60 list(SORT SRC_SHA1)
61
62 ADD_FEATURE_INFO(SHA ON "using ${USE_SHA1}")