]>
Commit | Line | Data |
---|---|---|
22a2d3d5 UG |
1 | # Select a hash backend |
2 | ||
e579e0f7 | 3 | include(SanitizeBool) |
22a2d3d5 UG |
4 | |
5 | # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF | |
e579e0f7 | 6 | sanitizebool(USE_SHA1) |
ad5611d8 TR |
7 | sanitizebool(USE_SHA256) |
8 | ||
9 | # sha1 | |
22a2d3d5 | 10 | |
e579e0f7 | 11 | if(USE_SHA1 STREQUAL ON) |
22a2d3d5 | 12 | SET(USE_SHA1 "CollisionDetection") |
e579e0f7 MB |
13 | elseif(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() | |
23 | endif() | |
22a2d3d5 | 24 | |
e579e0f7 MB |
25 | if(USE_SHA1 STREQUAL "CollisionDetection") |
26 | set(GIT_SHA1_COLLISIONDETECT 1) | |
e579e0f7 | 27 | elseif(USE_SHA1 STREQUAL "OpenSSL") |
e579e0f7 | 28 | set(GIT_SHA1_OPENSSL 1) |
ad5611d8 TR |
29 | elseif(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) | |
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) | |
37 | elseif(USE_SHA1 STREQUAL "Win32") | |
38 | set(GIT_SHA1_WIN32 1) | |
39 | else() | |
40 | message(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}") | |
41 | endif() | |
42 | ||
43 | # sha256 | |
44 | ||
45 | if(USE_SHA256 STREQUAL ON AND USE_HTTPS) | |
46 | SET(USE_SHA256 "HTTPS") | |
47 | elseif(USE_SHA256 STREQUAL ON) | |
48 | SET(USE_SHA256 "Builtin") | |
49 | endif() | |
50 | ||
51 | if(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() | |
59 | endif() | |
60 | ||
61 | if(USE_SHA256 STREQUAL "Builtin") | |
62 | set(GIT_SHA256_BUILTIN 1) | |
63 | elseif(USE_SHA256 STREQUAL "OpenSSL") | |
64 | set(GIT_SHA256_OPENSSL 1) | |
65 | elseif(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) | |
69 | elseif(USE_SHA256 STREQUAL "CommonCrypto") | |
70 | set(GIT_SHA256_COMMON_CRYPTO 1) | |
71 | elseif(USE_SHA256 STREQUAL "mbedTLS") | |
72 | set(GIT_SHA256_MBEDTLS 1) | |
73 | elseif(USE_SHA256 STREQUAL "Win32") | |
74 | set(GIT_SHA256_WIN32 1) | |
75 | else() | |
76 | message(FATAL_ERROR "Asked for unknown SHA256 backend: ${USE_SHA256}") | |
77 | endif() | |
78 | ||
79 | # add library requirements | |
80 | if(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 |
86 | endif() |
87 | ||
88 | if(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 | 95 | endif() |
22a2d3d5 | 96 | |
ad5611d8 TR |
97 | # notify feature enablement |
98 | ||
99 | add_feature_info(SHA1 ON "using ${USE_SHA1}") | |
100 | add_feature_info(SHA256 ON "using ${USE_SHA256}") |