diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a3d959c417..e2e0959425 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -821,6 +821,16 @@ b:macos-arm64-ninja-symlinked: 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 @@ t:macos-arm64-ninja-symlinked: 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 0000000000..af49873680 --- /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 9611f0b1f3..de0ffc0aaf 100644 --- a/.gitlab/ci/configure_macos_arm64_ninja.cmake +++ b/.gitlab/ci/configure_macos_arm64_ninja.cmake @@ -8,7 +8,7 @@ set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "") 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 ed25f68c43..43505dbdc4 100644 --- a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake +++ b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake @@ -8,7 +8,7 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") 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 0feafa2f8c..83d1e2c304 100644 --- a/.gitlab/ci/configure_macos_x86_64_ninja.cmake +++ b/.gitlab/ci/configure_macos_x86_64_ninja.cmake @@ -11,7 +11,7 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") 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 894d6242cf..2b265ea490 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 5f661a9a71..081bd7d1d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,6 +178,9 @@ macro(CMAKE_HANDLE_SYSTEM_LIBRARIES) 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 @@ macro(CMAKE_HANDLE_SYSTEM_LIBRARIES) 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 60e5638171..3abeec66b9 100755 --- a/bootstrap +++ b/bootstrap @@ -684,8 +684,8 @@ Configuration: (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