Merge topic 'macos-prefer-system-curl'
31884a7146 ci: Add nightly job to build CMake with vendored curl on macOS
d3cbee99e3 macOS: Prefer building with system-provided curl
d224c018fe nghttp2: Skip "Using system-installed" message if using system curl
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9500
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a3d959c..e2e0959 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -821,6 +821,16 @@
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
+b:macos-arm64-curl:
+ extends:
+ - .macos_arm64_curl
+ - .cmake_build_macos
+ - .cmake_build_artifacts
+ - .macos_arm64_tags
+ - .run_manually
+ variables:
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
b:macos-arm64-pch:
extends:
- .macos_arm64_pch
@@ -874,6 +884,19 @@
CMAKE_CI_JOB_NIGHTLY: "true"
CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
+t:macos-arm64-curl:
+ extends:
+ - .macos_arm64_curl
+ - .cmake_test_macos
+ - .macos_arm64_tags
+ - .run_dependent
+ dependencies:
+ - b:macos-arm64-curl
+ needs:
+ - b:macos-arm64-curl
+ variables:
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
b:macos-x86_64-makefiles:
extends:
- .macos_x86_64_makefiles
diff --git a/.gitlab/ci/configure_macos_arm64_curl.cmake b/.gitlab/ci/configure_macos_arm64_curl.cmake
new file mode 100644
index 0000000..af49873
--- /dev/null
+++ b/.gitlab/ci/configure_macos_arm64_curl.cmake
@@ -0,0 +1,12 @@
+# Build with our vendored curl instead of the default system version.
+set(CMAKE_USE_SYSTEM_CURL "OFF" CACHE BOOL "")
+
+set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
+set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
+
+# Test that our vendored curl accepts CURL_SSLVERSION_TLSv1_3. It is passed
+# through to Secure Transport, but macOS does not actually enforce it.
+set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/configure_macos_arm64_ninja.cmake b/.gitlab/ci/configure_macos_arm64_ninja.cmake
index 9611f0b..de0ffc0 100644
--- a/.gitlab/ci/configure_macos_arm64_ninja.cmake
+++ b/.gitlab/ci/configure_macos_arm64_ninja.cmake
@@ -8,7 +8,7 @@
set(CMake_TEST_GUI "ON" CACHE BOOL "")
set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
-set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake
index ed25f68..43505db 100644
--- a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake
+++ b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake
@@ -8,7 +8,7 @@
endif()
set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
-set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/configure_macos_x86_64_ninja.cmake b/.gitlab/ci/configure_macos_x86_64_ninja.cmake
index 0feafa2..83d1e2c 100644
--- a/.gitlab/ci/configure_macos_x86_64_ninja.cmake
+++ b/.gitlab/ci/configure_macos_x86_64_ninja.cmake
@@ -11,7 +11,7 @@
endif()
set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
-set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml
index 894d624..2b265ea 100644
--- a/.gitlab/os-macos.yml
+++ b/.gitlab/os-macos.yml
@@ -47,6 +47,13 @@
CMAKE_CI_IN_SYMLINK_TREE: 1
CMAKE_CI_BUILD_DIR: "real_work/work/build"
+.macos_arm64_curl:
+ extends: .macos_build
+
+ variables:
+ CMAKE_CONFIGURATION: macos_arm64_curl
+ CTEST_NO_WARNINGS_ALLOWED: 1
+
.macos_arm64_pch:
extends: .macos_arm64_ninja
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f661a9..081bd7d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -178,6 +178,9 @@
string(TOLOWER "${util}" lutil)
set(CMAKE_USE_SYSTEM_${util} "${CMAKE_USE_SYSTEM_LIBRARY_${util}}"
CACHE BOOL "Use system-installed ${lutil}" FORCE)
+ elseif(util STREQUAL "CURL" AND APPLE)
+ # macOS provides a curl with backends configured by Apple.
+ set(CMAKE_USE_SYSTEM_LIBRARY_${util} ON)
else()
set(CMAKE_USE_SYSTEM_LIBRARY_${util} OFF)
endif()
@@ -215,6 +218,10 @@
mark_as_advanced(CMAKE_USE_SYSTEM_KWIML)
# Mention to the user what system libraries are being used.
+ if(CMAKE_USE_SYSTEM_CURL)
+ # Avoid messaging about curl-only dependencies.
+ list(REMOVE_ITEM UTILITIES NGHTTP2)
+ endif()
foreach(util IN LISTS UTILITIES ITEMS KWIML)
if(CMAKE_USE_SYSTEM_${util})
message(STATUS "Using system-installed ${util}")
diff --git a/bootstrap b/bootstrap
index 60e5638..3abeec6 100755
--- a/bootstrap
+++ b/bootstrap
@@ -684,8 +684,8 @@
(default)
--system-cppdap use system-installed cppdap library
--no-system-cppdap use cmake-provided cppdap library (default)
- --system-curl use system-installed curl library
- --no-system-curl use cmake-provided curl library (default)
+ --system-curl use system-installed curl library (default on macOS)
+ --no-system-curl use cmake-provided curl library (default elsewhere)
--system-expat use system-installed expat library
--no-system-expat use cmake-provided expat library (default)
--system-jsoncpp use system-installed jsoncpp library