]> git.proxmox.com Git - libgit2.git/blame - cmake/SelectHashes.cmake
Merge https://salsa.debian.org/debian/libgit2 into proxmox/bullseye
[libgit2.git] / cmake / SelectHashes.cmake
CommitLineData
22a2d3d5
UG
1# Select a hash backend
2
e579e0f7 3include(SanitizeBool)
22a2d3d5
UG
4
5# USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
e579e0f7 6sanitizebool(USE_SHA1)
ad5611d8
TR
7sanitizebool(USE_SHA256)
8
9# sha1
22a2d3d5 10
e579e0f7 11if(USE_SHA1 STREQUAL ON)
22a2d3d5 12 SET(USE_SHA1 "CollisionDetection")
e579e0f7
MB
13elseif(USE_SHA1 STREQUAL "HTTPS")
14 if(USE_HTTPS STREQUAL "SecureTransport")
15 set(USE_SHA1 "CommonCrypto")
16 elseif(USE_HTTPS STREQUAL "WinHTTP")
17 set(USE_SHA1 "Win32")
18 elseif(USE_HTTPS)
19 set(USE_SHA1 ${USE_HTTPS})
20 else()
21 set(USE_SHA1 "CollisionDetection")
22 endif()
23endif()
22a2d3d5 24
e579e0f7
MB
25if(USE_SHA1 STREQUAL "CollisionDetection")
26 set(GIT_SHA1_COLLISIONDETECT 1)
e579e0f7 27elseif(USE_SHA1 STREQUAL "OpenSSL")
e579e0f7 28 set(GIT_SHA1_OPENSSL 1)
ad5611d8
TR
29elseif(USE_SHA1 STREQUAL "OpenSSL-Dynamic")
30 set(GIT_SHA1_OPENSSL 1)
31 set(GIT_SHA1_OPENSSL_DYNAMIC 1)
32 list(APPEND LIBGIT2_SYSTEM_LIBS dl)
33elseif(USE_SHA1 STREQUAL "CommonCrypto")
34 set(GIT_SHA1_COMMON_CRYPTO 1)
35elseif(USE_SHA1 STREQUAL "mbedTLS")
36 set(GIT_SHA1_MBEDTLS 1)
37elseif(USE_SHA1 STREQUAL "Win32")
38 set(GIT_SHA1_WIN32 1)
39else()
40 message(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
41endif()
42
43# sha256
44
45if(USE_SHA256 STREQUAL ON AND USE_HTTPS)
46 SET(USE_SHA256 "HTTPS")
47elseif(USE_SHA256 STREQUAL ON)
48 SET(USE_SHA256 "Builtin")
49endif()
50
51if(USE_SHA256 STREQUAL "HTTPS")
52 if(USE_HTTPS STREQUAL "SecureTransport")
53 set(USE_SHA256 "CommonCrypto")
54 elseif(USE_HTTPS STREQUAL "WinHTTP")
55 set(USE_SHA256 "Win32")
56 elseif(USE_HTTPS)
57 set(USE_SHA256 ${USE_HTTPS})
58 endif()
59endif()
60
61if(USE_SHA256 STREQUAL "Builtin")
62 set(GIT_SHA256_BUILTIN 1)
63elseif(USE_SHA256 STREQUAL "OpenSSL")
64 set(GIT_SHA256_OPENSSL 1)
65elseif(USE_SHA256 STREQUAL "OpenSSL-Dynamic")
66 set(GIT_SHA256_OPENSSL 1)
67 set(GIT_SHA256_OPENSSL_DYNAMIC 1)
68 list(APPEND LIBGIT2_SYSTEM_LIBS dl)
69elseif(USE_SHA256 STREQUAL "CommonCrypto")
70 set(GIT_SHA256_COMMON_CRYPTO 1)
71elseif(USE_SHA256 STREQUAL "mbedTLS")
72 set(GIT_SHA256_MBEDTLS 1)
73elseif(USE_SHA256 STREQUAL "Win32")
74 set(GIT_SHA256_WIN32 1)
75else()
76 message(FATAL_ERROR "Asked for unknown SHA256 backend: ${USE_SHA256}")
77endif()
78
79# add library requirements
80if(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL")
e579e0f7
MB
81 if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
82 list(APPEND LIBGIT2_PC_LIBS "-lssl")
83 else()
84 list(APPEND LIBGIT2_PC_REQUIRES "openssl")
85 endif()
ad5611d8
TR
86endif()
87
88if(USE_SHA1 STREQUAL "mbedTLS" OR USE_SHA256 STREQUAL "mbedTLS")
e579e0f7
MB
89 list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
90 list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES})
22a2d3d5
UG
91 # mbedTLS has no pkgconfig file, hence we can't require it
92 # https://github.com/ARMmbed/mbedtls/issues/228
93 # For now, pass its link flags as our own
e579e0f7 94 list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
e579e0f7 95endif()
22a2d3d5 96
ad5611d8
TR
97# notify feature enablement
98
99add_feature_info(SHA1 ON "using ${USE_SHA1}")
100add_feature_info(SHA256 ON "using ${USE_SHA256}")