Commit 83fa548078b0b35030ba028676d6b5674d86ba18

Edward Thomson 2021-11-10T21:58:12

cmake: refactor WinHTTP selection Move WinHTTP selection into its own cmake module.

diff --git a/cmake/SelectWinHTTP.cmake b/cmake/SelectWinHTTP.cmake
new file mode 100644
index 0000000..a411004
--- /dev/null
+++ b/cmake/SelectWinHTTP.cmake
@@ -0,0 +1,17 @@
+if(WIN32 AND WINHTTP)
+	set(GIT_WINHTTP 1)
+
+	# Since MinGW does not come with headers or an import library for winhttp,
+	# we have to include a private header and generate our own import library
+	if(MINGW)
+		add_subdirectory("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp")
+		list(APPEND LIBGIT2_LIBS winhttp)
+		list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
+	else()
+		list(APPEND LIBGIT2_LIBS "winhttp")
+		list(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
+	endif()
+
+	list(APPEND LIBGIT2_LIBS "rpcrt4" "crypt32" "ole32")
+	list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32")
+endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 819fc42..8a57b23 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -93,29 +93,12 @@ if(WIN32 AND EMBED_SSH_PATH)
 	set(GIT_SSH 1)
 endif()
 
-if(WIN32 AND USE_WINHTTP)
-	set(GIT_WINHTTP 1)
-
-	# Since MinGW does not come with headers or an import library for winhttp,
-	# we have to include a private header and generate our own import library
-	if(MINGW)
-		add_subdirectory("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp")
-		list(APPEND LIBGIT2_LIBS winhttp)
-		list(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
-	else()
-		list(APPEND LIBGIT2_LIBS "winhttp")
-		list(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
-	endif()
-
-	list(APPEND LIBGIT2_LIBS "rpcrt4" "crypt32" "ole32")
-	list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32")
-endif()
-
 include(SelectHTTPSBackend)
 include(SelectHashes)
 include(SelectHTTPParser)
 include(SelectRegex)
 include(SelectSSH)
+include(SelectWinHTTP)
 
 target_sources(git2internal PRIVATE ${SRC_SHA1})