@@ -4,6 +4,9 @@ include(SanitizeBool)
44
55# USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
66sanitizebool(USE_SHA1)
7+ sanitizebool(USE_SHA256)
8+
9+ # sha1
710
811if (USE_SHA1 STREQUAL ON )
912 SET (USE_SHA1 "CollisionDetection" )
@@ -22,28 +25,68 @@ endif()
2225if (USE_SHA1 STREQUAL "CollisionDetection" )
2326 set (GIT_SHA1_COLLISIONDETECT 1)
2427elseif (USE_SHA1 STREQUAL "OpenSSL" )
25- # OPENSSL_FOUND should already be set, we're checking USE_HTTPS
26-
2728 set (GIT_SHA1_OPENSSL 1)
29+ elseif (USE_SHA1 STREQUAL "CommonCrypto" )
30+ set (GIT_SHA1_COMMON_CRYPTO 1)
31+ elseif (USE_SHA1 STREQUAL "mbedTLS" )
32+ set (GIT_SHA1_MBEDTLS 1)
33+ elseif (USE_SHA1 STREQUAL "Win32" )
34+ set (GIT_SHA1_WIN32 1)
35+ else ()
36+ message (FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1} " )
37+ endif ()
38+
39+ # sha256
40+
41+ if (USE_SHA256 STREQUAL ON AND USE_HTTPS)
42+ SET (USE_SHA256 "HTTPS" )
43+ elseif (USE_SHA256 STREQUAL ON )
44+ SET (USE_SHA256 "Builtin" )
45+ endif ()
46+
47+ if (USE_SHA256 STREQUAL "HTTPS" )
48+ if (USE_HTTPS STREQUAL "SecureTransport" )
49+ set (USE_SHA256 "CommonCrypto" )
50+ elseif (USE_HTTPS STREQUAL "WinHTTP" )
51+ set (USE_SHA256 "Win32" )
52+ elseif (USE_HTTPS)
53+ set (USE_SHA256 ${USE_HTTPS} )
54+ endif ()
55+ endif ()
56+
57+ if (USE_SHA256 STREQUAL "Builtin" )
58+ set (GIT_SHA256_BUILTIN 1)
59+ elseif (USE_SHA256 STREQUAL "OpenSSL" )
60+ set (GIT_SHA256_OPENSSL 1)
61+ elseif (USE_SHA256 STREQUAL "CommonCrypto" )
62+ set (GIT_SHA256_COMMON_CRYPTO 1)
63+ elseif (USE_SHA256 STREQUAL "mbedTLS" )
64+ set (GIT_SHA256_MBEDTLS 1)
65+ elseif (USE_SHA256 STREQUAL "Win32" )
66+ set (GIT_SHA256_WIN32 1)
67+ else ()
68+ message (FATAL_ERROR "Asked for unknown SHA256 backend: ${USE_SHA256} " )
69+ endif ()
70+
71+ # add library requirements
72+ if (USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL" )
2873 if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
2974 list (APPEND LIBGIT2_PC_LIBS "-lssl" )
3075 else ()
3176 list (APPEND LIBGIT2_PC_REQUIRES "openssl" )
3277 endif ()
33- elseif (USE_SHA1 STREQUAL "CommonCrypto" )
34- set (GIT_SHA1_COMMON_CRYPTO 1)
35- elseif (USE_SHA1 STREQUAL "mbedTLS" )
36- set (GIT_SHA1_MBEDTLS 1)
78+ endif ()
79+
80+ if (USE_SHA1 STREQUAL "mbedTLS" OR USE_SHA256 STREQUAL "mbedTLS" )
3781 list (APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR} )
3882 list (APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES} )
3983 # mbedTLS has no pkgconfig file, hence we can't require it
4084 # https://github.com/ARMmbed/mbedtls/issues/228
4185 # For now, pass its link flags as our own
4286 list (APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES} )
43- elseif (USE_SHA1 STREQUAL "Win32" )
44- set (GIT_SHA1_WIN32 1)
45- elseif (NOT (USE_SHA1 STREQUAL "Generic" ))
46- message (FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1} " )
4787endif ()
4888
49- add_feature_info(SHA ON "using ${USE_SHA1} " )
89+ # notify feature enablement
90+
91+ add_feature_info(SHA1 ON "using ${USE_SHA1} " )
92+ add_feature_info(SHA256 ON "using ${USE_SHA256} " )
0 commit comments