Commit 54554757c0595f5b3705f15d1212b34984bb35d1

Etienne Samson 2018-03-29T22:14:14

cmake: make our preferred backend ordering consistent

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fa86d9f..0f5d785 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -133,6 +133,8 @@ ELSE ()
 ENDIF()
 
 IF (USE_HTTPS)
+	# We try to find any packages our backends might use
+	FIND_PACKAGE(OpenSSL)
 	FIND_PACKAGE(mbedTLS)
 	IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
 		FIND_PACKAGE(Security)
@@ -150,10 +152,13 @@ IF (USE_HTTPS)
 			ENDIF()
 		ELSEIF (WINHTTP)
 			SET(HTTPS_BACKEND "WinHTTP")
+		ELSEIF(OPENSSL_FOUND)
+			SET(HTTPS_BACKEND "OpenSSL")
 		ELSEIF(MBEDTLS_FOUND)
 			SET(HTTPS_BACKEND "mbedTLS")
 		ELSE()
-			SET(HTTPS_BACKEND "OpenSSL")
+			MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
+				"Please pass the backend name explicitly (-DUSE_HTTPS=backend)")
 		ENDIF()
 	ELSE()
 		# Backend was explicitly set
@@ -177,8 +182,6 @@ IF (USE_HTTPS)
 		LIST(APPEND LIBGIT2_LIBS ${COREFOUNDATION_LIBRARIES} ${SECURITY_LIBRARIES})
 		LIST(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
 	ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL")
-		FIND_PACKAGE(OpenSSL)
-
 		IF (NOT OPENSSL_FOUND)
 			MESSAGE(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found")
 		ENDIF()