@@ -127,10 +127,6 @@ ELSE ()
127127 PKG_CHECK_MODULES(CURL libcurl)
128128 ENDIF ()
129129
130- IF (NOT AMIGA AND (USE_HTTPS STREQUAL "OpenSSL" OR USE_HTTPS STREQUAL "ON" ))
131- FIND_PACKAGE (OpenSSL QUIET )
132- ENDIF ()
133-
134130 IF (CURL_FOUND)
135131 SET (GIT_CURL 1)
136132 LIST (APPEND LIBGIT2_INCLUDES ${CURL_INCLUDE_DIRS} )
@@ -183,6 +179,8 @@ IF (USE_HTTPS)
183179 LIST (APPEND LIBGIT2_LIBS ${COREFOUNDATION_LIBRARIES} ${SECURITY_LIBRARIES} )
184180 LIST (APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS} )
185181 ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL" )
182+ FIND_PACKAGE (OpenSSL)
183+
186184 IF (NOT OPENSSL_FOUND)
187185 MESSAGE (FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found" )
188186 ENDIF ()
@@ -204,34 +202,42 @@ ELSE()
204202ENDIF ()
205203
206204# Specify sha1 implementation
207- IF (USE_SHA1DC)
208- ADD_FEATURE_INFO(SHA ON "using SHA1DC" )
205+ IF (SHA1_BACKEND STREQUAL "OpenSSL" )
206+ IF (NOT OPENSSL_FOUND)
207+ FIND_PACKAGE (OpenSSL)
208+ IF (NOT OPENSSL_FOUND)
209+ MESSAGE (FATAL_ERROR "Requested OpenSSL SHA1 backend, but OpenSSL could not be found" )
210+ ENDIF ()
211+ ENDIF ()
212+
213+ ADD_FEATURE_INFO(SHA ON "using OpenSSL" )
214+ SET (GIT_SHA1_OPENSSL 1)
215+ IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
216+ LIST (APPEND LIBGIT2_PC_LIBS "-lssl" )
217+ ELSE ()
218+ SET (LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl" )
219+ ENDIF ()
220+ ELSEIF (SHA1_BACKEND STREQUAL "CollisionDetection" )
221+ ADD_FEATURE_INFO(SHA ON "using CollisionDetection" )
209222 SET (GIT_SHA1_COLLISIONDETECT 1)
210223 ADD_DEFINITIONS (-DSHA1DC_NO_STANDARD_INCLUDES=1)
211224 ADD_DEFINITIONS (-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
212225 ADD_DEFINITIONS (-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
213226 FILE (GLOB SRC_SHA1 hash/hash_collisiondetect.c hash/sha1dc/*)
214- ELSEIF (WIN32 AND NOT MINGW)
215- ADD_FEATURE_INFO(SHA ON "using SHA1_WIN32" )
227+ ELSEIF (SHA1_BACKEND STREQUAL "Generic" )
228+ ADD_FEATURE_INFO(SHA ON "using Generic" )
229+ FILE (GLOB SRC_SHA1 hash/hash_generic.c)
230+ ELSEIF (SHA1_BACKEND STREQUAL "Win32" )
231+ ADD_FEATURE_INFO(SHA ON "using Win32" )
216232 SET (GIT_SHA1_WIN32 1)
217233 FILE (GLOB SRC_SHA1 hash/hash_win32.c)
218- ELSEIF ( ${CMAKE_SYSTEM_NAME} MATCHES "Darwin " )
234+ ELSEIF (SHA1_BACKEND STREQUAL "CommonCrypto " )
219235 ADD_FEATURE_INFO(SHA ON "using CommonCrypto" )
220236 SET (GIT_SHA1_COMMON_CRYPTO 1)
221- ELSEIF (OPENSSL_FOUND)
222- ADD_FEATURE_INFO(SHA ON "using OpenSSL" )
223- SET (GIT_SHA1_OPENSSL 1)
224- IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
225- LIST (APPEND LIBGIT2_PC_LIBS "-lssl" )
226- ELSE ()
227- SET (LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl" )
228- ENDIF ()
229237ELSE ()
230- ADD_FEATURE_INFO(SHA ON "using generic" )
231- FILE (GLOB SRC_SHA1 hash/hash_generic.c)
238+ MESSAGE (FATAL_ERROR "Asked for unknown SHA1 backend ${SHA1_BACKEND} " )
232239ENDIF ()
233240
234-
235241# Include POSIX regex when it is required
236242IF (WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
237243 ADD_SUBDIRECTORY ("${libgit2_SOURCE_DIR} /deps/regex" "${libgit2_BINARY_DIR} /deps/regex" )
0 commit comments