mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-07 22:59:56 -05:00
82ac700f78
Revert commit 31884a7146 (ci: Add nightly job to build CMake with
vendored curl on macOS, 2024-05-09, v3.30.0-rc1~130^2). After
curl 8.15.0 dropped support for the Secure Transport backend, we
rely on the curl provided by macOS to use the system certificate
store.
225 lines
5.7 KiB
YAML
225 lines
5.7 KiB
YAML
# macOS-specific builder configurations and build commands
|
|
|
|
## Base configurations
|
|
|
|
.macos:
|
|
variables:
|
|
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci ext/$CI_CONCURRENT_ID"
|
|
# TODO: Factor this out so that each job selects the Xcode version to
|
|
# use so that different versions can be tested in a single pipeline.
|
|
DEVELOPER_DIR: "/Applications/Xcode-16.4.app/Contents/Developer"
|
|
# Avoid conflicting with other projects running on the same machine.
|
|
SCCACHE_SERVER_PORT: 4227
|
|
|
|
### Build and test
|
|
|
|
.macos_build:
|
|
extends: .macos
|
|
|
|
variables:
|
|
# Note that shell runners only support runners with a single
|
|
# concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may
|
|
# change between the build and test stages which CMake doesn't support.
|
|
# Even if we could, it could change if other runners on the machine
|
|
# could run at the same time, so we drop it.
|
|
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
|
|
|
|
.macos_x86_64_ninja:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_x86_64_ninja
|
|
CMAKE_CI_BUILD_TYPE: Release
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
|
|
.macos_arm64_ninja:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_ninja
|
|
CMAKE_CI_BUILD_TYPE: Release
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
|
|
.macos_arm64_ninja_symlinked:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_ninja_symlinked
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
CMAKE_CI_IN_SYMLINK_TREE: 1
|
|
CMAKE_CI_BUILD_DIR: "real_work/work/build"
|
|
|
|
.macos_arm64_pch:
|
|
extends: .macos_arm64_ninja
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_pch
|
|
|
|
.macos_x86_64_makefiles:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_x86_64_makefiles
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
.macos_package:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_package
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
CMAKE_CI_NO_INSTALL: 1
|
|
|
|
.macos10.10_package:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos10.10_package
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
CMAKE_CI_NO_INSTALL: 1
|
|
|
|
### External testing
|
|
|
|
.macos_x86_64_xcode:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_x86_64_xcode
|
|
CMAKE_GENERATOR: Xcode
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
|
|
.macos_arm64_xcode:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_xcode
|
|
CMAKE_GENERATOR: Xcode
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
|
|
.macos_arm64_xcode_symlinked:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_xcode_symlinked
|
|
CMAKE_GENERATOR: Xcode
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
CMAKE_CI_IN_SYMLINK_TREE: 1
|
|
CMAKE_CI_BUILD_DIR: "real_work/work/build"
|
|
|
|
.macos_arm64_xcode_ub:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_xcode_ub
|
|
CMAKE_GENERATOR: Xcode
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
|
|
.macos_arm64_ninja_multi:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_arm64_ninja_multi
|
|
CMAKE_GENERATOR: "Ninja Multi-Config"
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
|
|
.macos_x86_64_ninja_ub:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_x86_64_ninja_ub
|
|
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
|
|
|
|
## Tags
|
|
|
|
.macos_x86_64_tags:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos-x86_64
|
|
- shell
|
|
- xcode-16.4
|
|
- nonconcurrent
|
|
|
|
.macos_x86_64_tags_ext:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos-x86_64
|
|
- shell
|
|
- xcode-16.4
|
|
- concurrent
|
|
|
|
.macos_arm64_tags:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos-arm64
|
|
- shell
|
|
- xcode-16.4
|
|
- nonconcurrent
|
|
|
|
.macos_arm64_tags_ext:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos-arm64
|
|
- shell
|
|
- xcode-16.4
|
|
- concurrent
|
|
|
|
.macos_arm64_tags_package:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos-arm64
|
|
- shell
|
|
- xcode-16.4
|
|
- nonconcurrent
|
|
- finder
|
|
|
|
## macOS-specific scripts
|
|
|
|
.before_script_macos: &before_script_macos
|
|
- source .gitlab/ci/env.sh
|
|
- source .gitlab/ci/cmake-env.sh
|
|
- source .gitlab/ci/ninja-env.sh
|
|
# Download Qt
|
|
- cmake -P .gitlab/ci/download_qt.cmake
|
|
- export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH}
|
|
|
|
.cmake_build_macos:
|
|
stage: build
|
|
|
|
script:
|
|
- *before_script_macos
|
|
- .gitlab/ci/sccache.sh
|
|
# Allow the server to already be running.
|
|
- "sccache --start-server || :"
|
|
- sccache --show-stats
|
|
- .gitlab/ci/pre_build.sh
|
|
- ctest -VV -S .gitlab/ci/ctest_configure.cmake
|
|
- ctest -VV -S .gitlab/ci/ctest_build.cmake
|
|
- .gitlab/ci/post_build.sh
|
|
- sccache --show-stats
|
|
|
|
interruptible: true
|
|
|
|
.cmake_test_macos:
|
|
stage: test
|
|
|
|
script:
|
|
- *before_script_macos
|
|
- ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake
|
|
|
|
interruptible: true
|
|
|
|
.cmake_test_macos_external:
|
|
stage: test-ext
|
|
|
|
script:
|
|
- *before_script_macos
|
|
- .gitlab/ci/sccache.sh
|
|
# Allow the server to already be running.
|
|
- "sccache --start-server || :"
|
|
- sccache --show-stats
|
|
- "$LAUNCHER build/install/CMake.app/Contents/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
|
|
- sccache --show-stats
|
|
|
|
interruptible: true
|