| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- # 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-26.2.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_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"
- .macos_arm64_fastbuild:
- extends: .macos
- variables:
- CMAKE_CONFIGURATION: macos_arm64_fastbuild
- CMAKE_GENERATOR: FASTBuild
- 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-26.2
- - nonconcurrent
- .macos_x86_64_tags_ext:
- tags:
- - cmake # Since this is a bare runner, pin to a project.
- - macos-x86_64
- - shell
- - xcode-26.2
- - concurrent
- .macos_arm64_tags:
- tags:
- - cmake # Since this is a bare runner, pin to a project.
- - macos-arm64
- - shell
- - xcode-26.2
- - nonconcurrent
- .macos_arm64_tags_ext:
- tags:
- - cmake # Since this is a bare runner, pin to a project.
- - macos-arm64
- - shell
- - xcode-26.2
- - concurrent
- .macos_arm64_tags_package:
- tags:
- - cmake # Since this is a bare runner, pin to a project.
- - macos-arm64
- - shell
- - xcode-26.2
- - 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_configure.sh
- - ctest -VV -S .gitlab/ci/ctest_configure.cmake
- - .gitlab/ci/pre_build.sh
- - 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
- - .gitlab/ci/pre_test.sh
- - 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
|