Merge branch 'backport-macos-curl-backend' into macos-curl-backend

This commit is contained in:
Brad King
2025-04-29 11:50:17 -04:00
5 changed files with 7 additions and 16 deletions

View File

@@ -24,9 +24,8 @@ cmCTestCurl::cmCTestCurl(cmCTest* ctest)
, CurlOpts(ctest)
{
this->SetProxyType();
cmCurlInitOnce();
// In windows, this will init the winsock stuff
::curl_global_init(CURL_GLOBAL_ALL);
cm_curl_global_init(CURL_GLOBAL_ALL);
this->Curl = cm_curl_easy_init();
}

View File

@@ -146,9 +146,8 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
headers = ::curl_slist_append(headers, h.c_str());
}
cmCurlInitOnce();
/* In windows, this will init the winsock stuff */
::curl_global_init(CURL_GLOBAL_ALL);
cm_curl_global_init(CURL_GLOBAL_ALL);
cmCTestCurlOpts curlOpts(this->CTest);
for (std::string const& file : files) {
/* get a curl handle */

View File

@@ -53,17 +53,11 @@ static_assert(CURL_SSLVERSION_LAST == 8,
"A new CURL_SSLVERSION_ may be available!");
#endif
void cmCurlInitOnce()
::CURLcode cm_curl_global_init(long flags)
{
// curl 7.56.0 introduced curl_global_sslset.
#if defined(__APPLE__) && defined(CMAKE_USE_SYSTEM_CURL) && \
defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM >= 0x073800
static bool initialized = false;
if (initialized) {
return;
}
initialized = true;
cm::optional<std::string> curl_ssl_backend =
cmSystemTools::GetEnvVar("CURL_SSL_BACKEND");
if (!curl_ssl_backend || curl_ssl_backend->empty()) {
@@ -75,6 +69,7 @@ void cmCurlInitOnce()
}
}
#endif
return ::curl_global_init(flags);
}
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version)

View File

@@ -16,7 +16,6 @@
# define CURL_WRITEFUNC_ERROR 0xFFFFFFFF
#endif
void cmCurlInitOnce();
cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version);
cm::optional<std::string> cmCurlPrintTLSVersion(int curl_tls_version);
std::string cmCurlSetCAInfo(::CURL* curl, std::string const& cafile = {});
@@ -24,4 +23,5 @@ std::string cmCurlSetNETRCOption(::CURL* curl, std::string const& netrc_level,
std::string const& netrc_file);
std::string cmCurlFixFileURL(std::string url);
::CURLcode cm_curl_global_init(long flags);
::CURL* cm_curl_easy_init();

View File

@@ -2140,8 +2140,7 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
url = cmCurlFixFileURL(url);
::CURL* curl;
cmCurlInitOnce();
::curl_global_init(CURL_GLOBAL_DEFAULT);
cm_curl_global_init(CURL_GLOBAL_DEFAULT);
curl = cm_curl_easy_init();
if (!curl) {
status.SetError("DOWNLOAD error initializing curl.");
@@ -2541,8 +2540,7 @@ bool HandleUploadCommand(std::vector<std::string> const& args,
url = cmCurlFixFileURL(url);
::CURL* curl;
cmCurlInitOnce();
::curl_global_init(CURL_GLOBAL_DEFAULT);
cm_curl_global_init(CURL_GLOBAL_DEFAULT);
curl = cm_curl_easy_init();
if (!curl) {
status.SetError("UPLOAD error initializing curl.");