| # Linux-specific builder configurations and build commands |
| |
| ## Base images |
| |
| ### Release |
| |
| .linux_prep_source: |
| image: "fedora:41" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| |
| .linux_release_x86_64: |
| image: "kitware/cmake:build-linux-x86_64-deps-2023-08-16@sha256:aa0ebdbd90a51cc83d31f393c5c48ec4599a28f7ccdc288558522c6265b24fae" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| LAUNCHER: "scl enable devtoolset-7 --" |
| 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"' |
| |
| .sunos_release_x86_64: |
| image: "kitware/cmake:build-sunos-x86_64-deps-2025-02-27" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: x86_64 |
| |
| .sunos_release_sparc64: |
| image: "kitware/cmake:build-sunos-sparc64-deps-2025-02-27" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: sparc64 |
| |
| .sunos_package: |
| variables: |
| CMake_DOC_ARTIFACT_PREFIX: "$CI_PROJECT_DIR/build/install-doc" |
| |
| .needs_centos7_x86_64: |
| needs: |
| - b:centos7-x86_64 |
| |
| .needs_centos7_aarch64: |
| needs: |
| - b:centos7-aarch64 |
| |
| ### Debian |
| |
| .debian12: |
| image: "kitware/cmake:ci-debian12-x86_64-2025-01-23" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: x86_64 |
| |
| .debian12_iwyu: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_iwyu |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_CI_NO_INSTALL: 1 |
| |
| .debian12_aarch64: |
| image: "kitware/cmake:ci-debian12-aarch64-2025-02-24" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: aarch64 |
| |
| ### Fedora |
| |
| .fedora41: |
| image: "kitware/cmake:ci-fedora41-x86_64-2025-02-03" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" |
| CMAKE_ARCH: x86_64 |
| |
| .fedora41_hip: |
| image: "kitware/cmake:ci-fedora41-hip-x86_64-2025-02-03" |
| |
| variables: |
| # FIXME(rocclr): device modules fail loading from binaries in paths with spaces |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" |
| CMAKE_ARCH: x86_64 |
| |
| #### Lint builds |
| |
| .fedora41_tidy: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_tidy |
| CMAKE_CI_NO_INSTALL: 1 |
| |
| .fedora41_clang_analyzer: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_clang_analyzer |
| CMAKE_CI_BUILD_TYPE: Debug |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_CI_NO_INSTALL: 1 |
| |
| .fedora41_sphinx: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_sphinx |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" |
| CMAKE_CI_NO_INSTALL: 1 |
| |
| .fedora41_sphinx_package: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_sphinx_package |
| CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" |
| |
| #### Build and test |
| |
| .debian12_ninja: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_ninja |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .debian12_aarch64_ninja: |
| extends: .debian12_aarch64 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_aarch64_ninja |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .debian12_makefiles_inplace: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_makefiles_inplace |
| CMAKE_GENERATOR: "Unix Makefiles" |
| CMAKE_CI_BOOTSTRAP: 1 |
| CMAKE_CI_INPLACE: 1 |
| CMAKE_CI_NO_INSTALL: 1 |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .debian12_ninja_multi_symlinked: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_ninja_multi_symlinked |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_CI_IN_SYMLINK_TREE: 1 |
| CMAKE_CI_BUILD_DIR: "real_work/work/build" |
| |
| .debian12_extdeps: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_extdeps |
| CMAKE_CI_BUILD_TYPE: Release |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .debian12_aarch64_extdeps: |
| extends: .debian12_aarch64 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_aarch64_extdeps |
| CMAKE_CI_BUILD_TYPE: Release |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .fedora41_extdeps: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_extdeps |
| CMAKE_CI_BUILD_TYPE: Release |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .fedora41_ninja: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_ninja |
| CMAKE_CI_BUILD_TYPE: Release |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .fedora41_ninja_multi: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_ninja_multi |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| |
| .fedora41_makefiles: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_makefiles |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_GENERATOR: "Unix Makefiles" |
| |
| .fedora41_makefiles_symlinked: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_makefiles_symlinked |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| CMAKE_GENERATOR: "Unix Makefiles" |
| CMAKE_CI_IN_SYMLINK_TREE: 1 |
| CMAKE_CI_BUILD_DIR: "real_work/work/build" |
| |
| ### Clang Compiler |
| |
| .debian12_makefiles_clang: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_makefiles_clang |
| CMAKE_GENERATOR: "Unix Makefiles" |
| |
| .debian12_ninja_clang: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_ninja_clang |
| |
| .fedora41_makefiles_clang: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_makefiles_clang |
| CMAKE_GENERATOR: "Unix Makefiles" |
| |
| .fedora41_makefiles_lfortran: |
| extends: .fedora41 |
| |
| variables: |
| # FIXME(lfortran): -rpath flags with spaces not forwarded |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" |
| CMAKE_CONFIGURATION: fedora41_makefiles_lfortran |
| CMAKE_GENERATOR: "Unix Makefiles" |
| CTEST_LABELS: "Fortran" |
| |
| .fedora41_ninja_lfortran: |
| extends: .fedora41 |
| |
| variables: |
| # FIXME(lfortran): -rpath flags with spaces not forwarded |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" |
| CMAKE_CONFIGURATION: fedora41_ninja_lfortran |
| CTEST_LABELS: "Fortran" |
| |
| .fedora41_ninja_clang: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_ninja_clang |
| |
| .fedora41_ninja_multi_clang: |
| extends: .fedora41 |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_ninja_multi_clang |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| |
| ### Sanitizers |
| |
| .fedora_memcheck: |
| variables: |
| CMAKE_CI_BUILD_TYPE: RelWithDebInfo |
| |
| .fedora_asan_addon: |
| extends: .fedora_memcheck |
| |
| variables: |
| CTEST_MEMORYCHECK_TYPE: AddressSanitizer |
| CTEST_MEMORYCHECK_SANITIZER_OPTIONS: "" |
| |
| .fedora41_asan: |
| extends: |
| - .fedora41 |
| - .fedora_asan_addon |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_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" |
| |
| ### NVHPC Compiler |
| |
| .nvhpc: |
| image: "kitware/cmake:ci-nvhpc24.9-x86_64-2024-09-27" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .nvhpc_ninja: |
| extends: .nvhpc |
| variables: |
| CMAKE_CONFIGURATION: nvhpc_ninja |
| |
| ### CUDA builds |
| |
| .cuda: |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CTEST_LABELS: "CUDA" |
| CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 |
| |
| .cuda9.2: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda9.2-x86_64-2021-10-01" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .cuda9.2_nvidia: |
| extends: .cuda9.2 |
| variables: |
| CMAKE_CONFIGURATION: cuda9.2_nvidia |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| |
| .cuda10.2: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda10.2-x86_64-2021-06-16" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .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 |
| |
| .cuda11.6: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda11.6-x86_64-2022-02-28" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .cuda11.6_nvidia: |
| extends: .cuda11.6 |
| variables: |
| CMAKE_CONFIGURATION: cuda11.6_nvidia |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda11.6_clang: |
| extends: .cuda11.6 |
| variables: |
| CMAKE_CONFIGURATION: cuda11.6_clang |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda11.8_minimal: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda11.8-minimal-x86_64-2022-12-06" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .cuda11.8_minimal_nvidia: |
| extends: .cuda11.8_minimal |
| variables: |
| CMAKE_CONFIGURATION: cuda11.8_minimal_nvidia |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda11.8_splayed_nvidia: |
| extends: .cuda11.8_minimal |
| variables: |
| CMAKE_CONFIGURATION: cuda11.8_splayed_nvidia |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda12.2: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda12.2-x86_64-2024-09-25" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .cuda12.2_nvidia: |
| extends: .cuda12.2 |
| variables: |
| CMAKE_CONFIGURATION: cuda12.2_nvidia |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda12.2_clang: |
| extends: .cuda12.2 |
| variables: |
| CMAKE_CONFIGURATION: cuda12.2_clang |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda12.6: |
| extends: .cuda |
| image: "kitware/cmake:ci-cuda12.6-x86_64-2025-01-30" |
| variables: |
| CMAKE_ARCH: x86_64 |
| |
| .cuda12.6_nvidia: |
| extends: .cuda12.6 |
| variables: |
| CMAKE_CONFIGURATION: cuda12.6_nvidia |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda12.6_nvidia_clang: |
| extends: .cuda12.6 |
| variables: |
| CMAKE_CONFIGURATION: cuda12.6_nvidia_clang |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| .cuda12.6_clang: |
| extends: .cuda12.6 |
| variables: |
| CMAKE_CONFIGURATION: cuda12.6_clang |
| CTEST_NO_WARNINGS_ALLOWED: 1 |
| |
| ### HIP builds |
| |
| .hip6.3: |
| image: "kitware/cmake:ci-hip6.3-x86_64-2025-02-14" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: x86_64 |
| CTEST_LABELS: "HIP" |
| |
| .hip6.3_radeon: |
| extends: .hip6.3 |
| |
| variables: |
| # FIXME(rocclr): device modules fail loading from binaries in paths with spaces |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" |
| CMAKE_CONFIGURATION: hip6.3_radeon |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| |
| .debian12_hip_radeon: |
| extends: .debian12 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian12_hip_radeon |
| CTEST_LABELS: "HIP" |
| |
| .fedora41_hip_radeon: |
| extends: .fedora41_hip |
| |
| variables: |
| CMAKE_CONFIGURATION: fedora41_hip_radeon |
| CTEST_LABELS: "HIP" |
| |
| .hip6.3_nvidia: |
| extends: .hip6.3 |
| |
| variables: |
| CMAKE_CONFIGURATION: hip6.3_nvidia |
| CTEST_LABELS: "HIP" |
| |
| ### C++ modules |
| |
| .gcc_cxx_modules_x86_64: |
| image: "kitware/cmake:ci-gcc_cxx_modules-x86_64-2024-12-23" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: x86_64 |
| CC: "/opt/gcc-importstd/bin/gcc" |
| CXX: "/opt/gcc-importstd/bin/g++" |
| |
| .gcc_cxx_modules_ninja: |
| extends: .gcc_cxx_modules_x86_64 |
| |
| variables: |
| CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja |
| |
| .gcc_cxx_modules_ninja_multi: |
| extends: .gcc_cxx_modules_x86_64 |
| |
| variables: |
| CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja_multi |
| CMAKE_GENERATOR: "Ninja Multi-Config" |
| |
| ### Debian 10 legacy packages |
| |
| .debian10: |
| image: "kitware/cmake:ci-debian10-x86_64-2023-07-31" |
| |
| variables: |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" |
| CMAKE_ARCH: x86_64 |
| |
| .debian10_legacy: |
| extends: .debian10 |
| |
| variables: |
| CMAKE_CONFIGURATION: debian10_legacy |
| CTEST_LABELS: "Python2" |
| |
| ## Tags |
| |
| .linux_x86_64_tags: |
| tags: |
| - cmake |
| - build |
| - docker |
| - linux-x86_64 |
| |
| .linux_x86_64_v3_tags: |
| tags: |
| - cmake |
| - build |
| - docker |
| - linux-x86_64-v3 |
| |
| .linux_x86_64_tags_x11: |
| tags: |
| - cmake |
| - docker |
| - linux-x86_64 |
| - x11 |
| |
| .linux_x86_64_tags_cuda: |
| tags: |
| - cmake |
| - cuda-rt |
| - docker |
| - linux-x86_64 |
| |
| .linux_x86_64_v3_tags_cuda: |
| tags: |
| - cmake |
| - cuda-rt |
| - docker |
| - linux-x86_64-v3 |
| |
| .linux_x86_64_tags_radeon: |
| tags: |
| - cmake |
| - radeon |
| - docker |
| - linux-x86_64 |
| |
| .linux_aarch64_tags: |
| tags: |
| - cmake |
| - build |
| - docker |
| - linux-aarch64 |
| |
| ## Linux-specific scripts |
| |
| .before_script_linux: &before_script_linux |
| - source .gitlab/ci/env.sh |
| - source .gitlab/ci/cmake-env.sh |
| - source .gitlab/ci/ninja-env.sh |
| |
| .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 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_version_update_linux: |
| stage: build |
| extends: .fedora41 |
| script: |
| - .gitlab/ci/cmake_version_update.sh |
| interruptible: false # The job internally fetches and retries. |
| |
| .cmake_spellcheck_linux: |
| stage: build |
| extends: .fedora41 |
| script: |
| - .gitlab/ci/codespell.bash |
| - .gitlab/ci/typos.bash |
| interruptible: true |
| |
| .cmake_build_linux: |
| stage: build |
| |
| script: |
| - *before_script_linux |
| - .gitlab/ci/sccache.sh |
| - sccache --start-server |
| - sccache --show-stats |
| - .gitlab/ci/pre_build.sh |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake" |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake" |
| - .gitlab/ci/post_build.sh |
| - 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/ |
| - cp Utilities/Release/linux/$CMAKE_ARCH/cache.txt build/CMakeCache.txt |
| # Make sccache available. |
| - source .gitlab/ci/sccache-env.sh |
| # 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\\.|RunCMake\\.ctest_memcheck)'" |
| # Make a package. |
| - bin/cpack -G TGZ |
| - bin/cpack -G STGZ |
| - sccache --show-stats |
| |
| interruptible: true |
| |
| .cmake_build_linux_standalone: |
| stage: build |
| |
| script: |
| - *before_script_linux |
| - .gitlab/ci/sccache.sh |
| - sccache --start-server |
| - sccache --show-stats |
| - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" |
| - 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_standalone.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_standalone.cmake" |
| - sccache --show-stats |
| |
| interruptible: true |
| |
| .cmake_test_linux_intelclassic_makefiles: |
| extends: |
| - .intelclassic_makefiles |
| - .cmake_test_linux_release |
| - .linux_x86_64_tags |
| - .run_manually |
| - .needs_centos7_x86_64 |
| variables: |
| CMAKE_CI_JOB_NIGHTLY: "true" |
| |
| .cmake_test_linux_inteloneapi_makefiles: |
| extends: |
| - .inteloneapi_makefiles |
| - .cmake_test_linux_release |
| - .linux_x86_64_tags |
| - .run_manually |
| - .needs_centos7_x86_64 |
| variables: |
| CMAKE_CI_JOB_NIGHTLY: "true" |
| |
| .cmake_build_sunos_release: |
| stage: build |
| |
| script: |
| - *before_script_linux |
| # SunOS sysroot |
| - Utilities/Release/sunos/docker/sysroot.bash $CMAKE_ARCH |
| # Initial cache |
| - mkdir -p build/ |
| - cp Utilities/Release/sunos/$CMAKE_ARCH/cache.txt build/CMakeCache.txt |
| # Make sccache available. |
| - source .gitlab/ci/sccache-env.sh |
| - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt |
| - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt |
| # Build |
| - cd build/ |
| - cmake .. -GNinja |
| -DCMAKE_DOC_DIR=doc/cmake |
| -DCMake_DOC_ARTIFACT_PREFIX="$CMake_DOC_ARTIFACT_PREFIX" |
| -DCMAKE_TOOLCHAIN_FILE="$CI_PROJECT_DIR/Utilities/Release/sunos/$CMAKE_ARCH/toolchain.cmake" |
| - ninja |
| # Package |
| - cpack -G "TGZ;STGZ" |
| - sccache --show-stats |
| |
| interruptible: true |
| |
| ### Documentation |
| |
| .cmake_org_help: |
| stage: build |
| extends: |
| - .fedora41 |
| - .linux_x86_64_tags |
| - .cmake_org_help_artifacts |
| script: |
| - *before_script_linux |
| - mkdir -p build/ |
| - cd build/ |
| - cmake ../Utilities/Sphinx -GNinja |
| -DSPHINX_HTML=ON |
| -DSPHINX_QTHELP=$CMAKE_CI_SPHINX_QTHELP |
| -DCMake_SPHINX_CMAKE_ORG=ON |
| -DCMake_SPHINX_CMAKE_ORG_OUTDATED=$CMAKE_CI_SPHINX_OUTDATED |
| -DCMake_VERSION_NO_GIT=$CMAKE_CI_VERSION_NO_GIT |
| - ninja |