# Linux-specific builder configurations and build commands

## Base images

### Release

.linux_prep_source:
    image: "fedora:34"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"

.linux_release_x86_64:
    image: "kitware/cmake:build-linux-x86_64-deps-2020-04-02@sha256:77e9ab183f34680990db9da5945473e288f0d6556bce79ecc1589670d656e157"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
        LAUNCHER: "scl enable devtoolset-6 rh-python36 --"
        CMAKE_ARCH: x86_64

.linux_release_aarch64:
    image: "kitware/cmake:build-linux-aarch64-deps-2020-12-21@sha256:0bd7dfe4e45593b04e39cd21e44011034610cfd376900558c5ef959bb1af15af"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
        LAUNCHER: "scl enable devtoolset-7 --"
        CMAKE_ARCH: aarch64

.linux_package:
    variables:
        BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"'

.needs_centos6_x86_64:
    dependencies:
        - build:centos6-x86_64
    needs:
        - build:centos6-x86_64

.needs_centos7_aarch64:
    dependencies:
        - build:centos7-aarch64
    needs:
        - build:centos7-aarch64

### Debian

.debian10:
    image: "kitware/cmake:ci-debian10-x86_64-2021-06-28"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
        CMAKE_ARCH: x86_64

.debian10_iwyu:
    extends: .debian10

    variables:
        CMAKE_CONFIGURATION: debian10_iwyu
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMake_SKIP_INSTALL: 1

.debian10_aarch64:
    image: "kitware/cmake:ci-debian10-aarch64-2021-06-28"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
        CMAKE_ARCH: aarch64

### Fedora

.fedora34:
    image: "kitware/cmake:ci-fedora34-x86_64-2021-06-28"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
        CMAKE_ARCH: x86_64

#### Lint builds

.fedora34_tidy:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_tidy
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMake_SKIP_INSTALL: 1

.fedora34_clang_analyzer:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_clang_analyzer
        CMAKE_CI_BUILD_TYPE: Debug
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMake_SKIP_INSTALL: 1

.fedora34_sphinx:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_sphinx
        CTEST_NO_WARNINGS_ALLOWED: 1
        CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
        CMake_SKIP_INSTALL: 1

.fedora34_sphinx_package:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_sphinx_package
        CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"

#### Build and test

.debian10_ninja:
    extends: .debian10

    variables:
        CMAKE_CONFIGURATION: debian10_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.debian10_aarch64_ninja:
    extends: .debian10_aarch64

    variables:
        CMAKE_CONFIGURATION: debian10_aarch64_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.fedora34_ninja:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.fedora34_ninja_multi:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_ninja_multi
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMAKE_GENERATOR: "Ninja Multi-Config"

.fedora34_makefiles:
    extends: .fedora34

    variables:
        CMAKE_CONFIGURATION: fedora34_makefiles
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMAKE_GENERATOR: "Unix Makefiles"

### Clang Compiler

.debian10_makefiles_clang:
    extends: .debian10

    variables:
        CMAKE_CONFIGURATION: debian10_makefiles_clang
        CMAKE_GENERATOR: "Unix Makefiles"

.debian10_ninja_clang:
    extends: .debian10

    variables:
        CMAKE_CONFIGURATION: debian10_ninja_clang

### Sanitizers

.fedora_memcheck:
    variables:
        CMAKE_CI_BUILD_TYPE: RelWithDebInfo

.fedora_asan_addon:
    extends: .fedora_memcheck

    variables:
        CTEST_MEMORYCHECK_TYPE: AddressSanitizer
        CTEST_MEMORYCHECK_SANITIZER_OPTIONS: ""

.fedora34_asan:
    extends:
        - .fedora34
        - .fedora_asan_addon

    variables:
        CMAKE_CONFIGURATION: fedora34_asan

### Intel Compiler

.intelcompiler:
    image: "kitware/intelcompiler:$CMAKE_CI_INTELCOMPILER_IMAGE_TAG"
    environment:
        name: intel-compiler
    variables:
        CMAKE_ARCH: x86_64

.intelclassic_makefiles:
    extends: .intelcompiler
    variables:
        CMAKE_CONFIGURATION: intelclassic_makefiles
        CMAKE_GENERATOR: "Unix Makefiles"

.inteloneapi_makefiles:
    extends: .intelcompiler
    variables:
        CMAKE_CONFIGURATION: inteloneapi_makefiles
        CMAKE_GENERATOR: "Unix Makefiles"

### CUDA builds

.cuda10.2:
    image: "kitware/cmake:ci-cuda10.2-x86_64-2021-06-16"

    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
        CMAKE_ARCH: x86_64
        CTEST_LABELS: "CUDA"

.cuda10.2_nvidia:
    extends: .cuda10.2

    variables:
        CMAKE_CONFIGURATION: cuda10.2_nvidia
        CTEST_NO_WARNINGS_ALLOWED: 1

.cuda10.2_clang:
    extends: .cuda10.2

    variables:
        CMAKE_CONFIGURATION: cuda10.2_clang
        CTEST_NO_WARNINGS_ALLOWED: 1

## Tags

.linux_builder_tags:
    tags:
        - cmake
        - build
        - docker
        - linux

.linux_builder_tags_qt:
    tags:
        - cmake
        - build
        - docker
        - linux
        - linux-3.17 # Needed to be able to load Fedora's Qt libraries.

.linux_builder_tags_x11:
    tags:
        - cmake
        - docker
        - linux
        - linux-3.17 # Needed to be able to load Fedora's Qt libraries.
        - x11

.linux_builder_tags_cuda:
    tags:
        - cmake
        - cuda-rt
        - docker
        - linux

.linux_builder_tags_aarch64:
    tags:
        - cmake
        - build
        - docker
        - linux-aarch64

.linux_builder_tags_aarch64_qt:
    tags:
        - cmake
        - build
        - docker
        - linux-aarch64
        - linux-3.17 # Needed to be able to load Fedora's Qt libraries.

## Linux-specific scripts

.before_script_linux: &before_script_linux
    - source .gitlab/ci/env.sh
    - .gitlab/ci/cmake.sh
    - .gitlab/ci/ninja.sh
    - export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
    - cmake --version
    - ninja --version

.cmake_prep_source_linux:
    stage: prep

    script:
        - *before_script_linux
        - dnf install --setopt=install_weak_deps=False -y git-core
        - v="$(.gitlab/ci/cmake_version.sh)"
        - mkdir -p build/
        - git archive --format=tgz "--prefix=cmake-$v/" -o "build/cmake-$v.tar.gz" HEAD
        - git -c core.autocrlf=true -c core.eol=crlf archive --format=zip --prefix="cmake-$v/" -o "build/cmake-$v.zip" HEAD

    interruptible: true

.cmake_prep_doc_linux:
    stage: prep

    script:
        - *before_script_linux
        - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake"
        - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"

    interruptible: true

.cmake_codespell_linux:
    stage: build
    extends: .fedora34
    script:
        - codespell
    interruptible: true

.cmake_build_linux:
    stage: build

    script:
        - *before_script_linux
        - .gitlab/ci/sccache.sh
        - sccache --start-server
        - sccache --show-stats
        - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake"
        - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"
        - sccache --show-stats

    interruptible: true

.cmake_test_linux:
    stage: test

    script:
        - *before_script_linux
        - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake"

    interruptible: true

.cmake_memcheck_linux:
    stage: test

    script:
        - *before_script_linux
        - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_memcheck.cmake"

    interruptible: true

.cmake_build_linux_release:
    stage: build

    script:
        - source .gitlab/ci/env.sh
        # Bootstrap.
        - mkdir -p build/
        # Exclude documentation.  A job dependency provides it for packaging.
        - sed '/^# Build doc/,/^$/d' Utilities/Release/linux/$CMAKE_ARCH/cache.txt > build/CMakeCache.txt
        # Make sccache available.
        - .gitlab/ci/sccache.sh
        - export PATH=$PWD/.gitlab:$PATH
        # Append sccache settings to the cache.
        - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
        - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
        # CI settings.
        - echo "CMake_TEST_INSTALL:BOOL=OFF" >> build/CMakeCache.txt
        - echo "CMAKE_INSTALL_PREFIX:PATH=$PWD/build/install" >> build/CMakeCache.txt
        - echo "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON" >> build/CMakeCache.txt
        # Appease Git. The Git in this container is old (1.7) and doesn't
        # understand some things. But, it doesn't need to, so make it blind.
        - mkdir -p .git/info
        - echo "* -crlf" >> .git/info/attributes
        - git reset --hard
        # Bootstrap
        - cd build/
        - '$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake $BOOTSTRAP_ARGS'
        # FIXME: When CTest can drive an external CMake for the build as well,
        # use the scripts here.
        - "$LAUNCHER make -j$(nproc)"
        # NOTE: This regex matches that used in the release build.
        - "$LAUNCHER bin/ctest --output-on-failure -j$(nproc) -R '^(CMake\\.|CMakeLib\\.|CMakeServerLib\\.|RunCMake\\.ctest_memcheck)'"
        # Make a package.
        - bin/cpack -G TGZ
        - bin/cpack -G STGZ
        - sccache --show-stats

    interruptible: true

.cmake_test_linux_release:
    stage: test-ext

    script:
        - *before_script_linux
        # Make the CMake package available.
        - mkdir -p build/install
        - tar -C build/install --strip-components=1 -xzf build/cmake-*-linux-$CMAKE_ARCH.tar.gz
        - .gitlab/ci/sccache.sh
        - sccache --start-server
        - sccache --show-stats
        - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake"
        - sccache --show-stats

    interruptible: true

.cmake_test_linux_external:
    stage: test-ext

    script:
        - *before_script_linux
        - .gitlab/ci/sccache.sh
        - sccache --start-server
        - sccache --show-stats
        - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake"
        - sccache --show-stats

    interruptible: true

.cmake_test_linux_intelclassic_makefiles:
    extends:
        - .intelclassic_makefiles
        - .cmake_test_linux_release
        - .linux_builder_tags_qt
        - .run_manually
        - .needs_centos6_x86_64
    variables:
        CMAKE_CI_JOB_NIGHTLY: "true"

.cmake_test_linux_inteloneapi_makefiles:
    extends:
        - .inteloneapi_makefiles
        - .cmake_test_linux_release
        - .linux_builder_tags_qt
        - .run_manually
        - .needs_centos6_x86_64
    variables:
        CMAKE_CI_JOB_NIGHTLY: "true"

### Documentation

.cmake_org_help:
    stage: build
    extends:
        - .fedora34
        - .linux_builder_tags
        - .cmake_org_help_artifacts
    script:
        - *before_script_linux
        - mkdir -p build/
        - cd build/
        - cmake ../Utilities/Sphinx -GNinja -DSPHINX_HTML=ON -DSPHINX_FLAGS="-A versionswitch=1"
        - ninja
