@@ -122,10 +122,6 @@ ELSE ()
122122 PKG_CHECK_MODULES(CURL libcurl)
123123 ENDIF ()
124124
125- IF (NOT AMIGA AND (USE_HTTPS STREQUAL "OpenSSL" OR USE_HTTPS STREQUAL "ON" ))
126- FIND_PACKAGE (OpenSSL QUIET )
127- ENDIF ()
128-
129125 IF (CURL_FOUND)
130126 SET (GIT_CURL 1)
131127 LIST (APPEND LIBGIT2_INCLUDES ${CURL_INCLUDE_DIRS} )
@@ -178,6 +174,8 @@ IF (USE_HTTPS)
178174 LIST (APPEND LIBGIT2_LIBS ${COREFOUNDATION_LIBRARIES} ${SECURITY_LIBRARIES} )
179175 LIST (APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS} )
180176 ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL" )
177+ FIND_PACKAGE (OpenSSL)
178+
181179 IF (NOT OPENSSL_FOUND)
182180 MESSAGE (FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found" )
183181 ENDIF ()
@@ -199,34 +197,42 @@ ELSE()
199197ENDIF ()
200198
201199# Specify sha1 implementation
202- IF (USE_SHA1DC)
203- ADD_FEATURE_INFO(SHA ON "using SHA1DC" )
200+ IF (SHA1_BACKEND STREQUAL "OpenSSL" )
201+ IF (NOT OPENSSL_FOUND)
202+ FIND_PACKAGE (OpenSSL)
203+ IF (NOT OPENSSL_FOUND)
204+ MESSAGE (FATAL_ERROR "Requested OpenSSL SHA1 backend, but OpenSSL could not be found" )
205+ ENDIF ()
206+ ENDIF ()
207+
208+ ADD_FEATURE_INFO(SHA ON "using OpenSSL" )
209+ SET (GIT_SHA1_OPENSSL 1)
210+ IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
211+ LIST (APPEND LIBGIT2_PC_LIBS "-lssl" )
212+ ELSE ()
213+ SET (LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl" )
214+ ENDIF ()
215+ ELSEIF (SHA1_BACKEND STREQUAL "CollisionDetection" )
216+ ADD_FEATURE_INFO(SHA ON "using CollisionDetection" )
204217 SET (GIT_SHA1_COLLISIONDETECT 1)
205218 ADD_DEFINITIONS (-DSHA1DC_NO_STANDARD_INCLUDES=1)
206219 ADD_DEFINITIONS (-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
207220 ADD_DEFINITIONS (-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
208221 FILE (GLOB SRC_SHA1 hash/hash_collisiondetect.c hash/sha1dc/*)
209- ELSEIF (WIN32 AND NOT MINGW)
210- ADD_FEATURE_INFO(SHA ON "using SHA1_WIN32" )
222+ ELSEIF (SHA1_BACKEND STREQUAL "Generic" )
223+ ADD_FEATURE_INFO(SHA ON "using Generic" )
224+ FILE (GLOB SRC_SHA1 hash/hash_generic.c)
225+ ELSEIF (SHA1_BACKEND STREQUAL "Win32" )
226+ ADD_FEATURE_INFO(SHA ON "using Win32" )
211227 SET (GIT_SHA1_WIN32 1)
212228 FILE (GLOB SRC_SHA1 hash/hash_win32.c)
213- ELSEIF ( ${CMAKE_SYSTEM_NAME} MATCHES "Darwin " )
229+ ELSEIF (SHA1_BACKEND STREQUAL "CommonCrypto " )
214230 ADD_FEATURE_INFO(SHA ON "using CommonCrypto" )
215231 SET (GIT_SHA1_COMMON_CRYPTO 1)
216- ELSEIF (OPENSSL_FOUND)
217- ADD_FEATURE_INFO(SHA ON "using OpenSSL" )
218- SET (GIT_SHA1_OPENSSL 1)
219- IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
220- LIST (APPEND LIBGIT2_PC_LIBS "-lssl" )
221- ELSE ()
222- SET (LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl" )
223- ENDIF ()
224232ELSE ()
225- ADD_FEATURE_INFO(SHA ON "using generic" )
226- FILE (GLOB SRC_SHA1 hash/hash_generic.c)
233+ MESSAGE (FATAL_ERROR "Asked for unknown SHA1 backend ${SHA1_BACKEND} " )
227234ENDIF ()
228235
229-
230236# Include POSIX regex when it is required
231237IF (WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
232238 ADD_SUBDIRECTORY ("${libgit2_SOURCE_DIR} /deps/regex" "${libgit2_BINARY_DIR} /deps/regex" )
0 commit comments