mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-07 22:59:56 -05:00
6d168c41e3
They're not actually the same anyways and the anchors can't be shared between the files. We can figure out refactoring in the future.
116 lines
3.0 KiB
YAML
116 lines
3.0 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-11.5.app/Contents/Developer"
|
|
|
|
### 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_ninja:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_ninja
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
|
|
.macos_makefiles:
|
|
extends: .macos_build
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_makefiles
|
|
CTEST_NO_WARNINGS_ALLOWED: 1
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
### External testing
|
|
|
|
.macos_xcode:
|
|
extends: .macos
|
|
|
|
variables:
|
|
CMAKE_CONFIGURATION: macos_xcode
|
|
CMAKE_GENERATOR: Xcode
|
|
|
|
## Tags
|
|
|
|
.macos_builder_tags:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos
|
|
- shell
|
|
- xcode-11.5
|
|
- nonconcurrent
|
|
|
|
.macos_builder_ext_tags:
|
|
tags:
|
|
- cmake # Since this is a bare runner, pin to a project.
|
|
- macos
|
|
- shell
|
|
- xcode-11.5
|
|
- concurrent
|
|
|
|
## macOS-specific scripts
|
|
|
|
.before_script_macos: &before_script_macos
|
|
- .gitlab/ci/cmake.sh
|
|
- .gitlab/ci/ninja.sh
|
|
- export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
|
|
- cmake --version
|
|
- ninja --version
|
|
# Download Qt
|
|
- cmake -P .gitlab/ci/download_qt.cmake
|
|
- export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt
|
|
|
|
.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
|
|
- ctest -VV -S .gitlab/ci/ctest_configure.cmake
|
|
- ctest -VV -S .gitlab/ci/ctest_build.cmake
|
|
- 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_test_external.cmake"
|
|
- sccache --show-stats
|
|
|
|
interruptible: true
|