# 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-12.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
        CTEST_NO_WARNINGS_ALLOWED: 1

.macos_arm64_ninja:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos_arm64_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.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_SKIP_INSTALL: 1

.macos10.10_package:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos10.10_package
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMake_SKIP_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"

## Tags

.macos_x86_64_builder_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-12.4
        - nonconcurrent

.macos_x86_64_builder_tags_package:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-12.4
        - nonconcurrent
        - finder

.macos_x86_64_builder_ext_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-12.4
        - concurrent

.macos_arm64_builder_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos-arm64
        - shell
        - xcode-12.4
        - nonconcurrent

.macos_arm64_builder_ext_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos-arm64
        - shell
        - xcode-12.4
        - 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_build_macos_package:
    stage: build

    script:
        - *before_script_macos
        - ctest -VV -S .gitlab/ci/ctest_configure.cmake
        - ctest -VV -S .gitlab/ci/ctest_build.cmake
        - cd build
        - cpack -G TGZ
        - cpack -G DragNDrop

    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
