Browse Source

gitlab-ci: add CI jobs for Clang with C++20 modules

Ben Boeckel 3 years ago
parent
commit
2c558cfd1b

+ 20 - 0
.gitlab-ci.yml

@@ -325,6 +325,26 @@ t:linux-gcc-cxx-modules-ninja-multi:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
+t:linux-clang-cxx-modules-ninja:
+    extends:
+        - .clang_cxx_modules_ninja
+        - .cmake_test_linux_release
+        - .linux_x86_64_tags
+        - .run_dependent
+        - .needs_centos6_x86_64
+    variables:
+        CMAKE_CI_JOB_NIGHTLY: "true"
+
+t:linux-clang-cxx-modules-ninja-multi:
+    extends:
+        - .clang_cxx_modules_ninja_multi
+        - .cmake_test_linux_release
+        - .linux_x86_64_tags
+        - .run_dependent
+        - .needs_centos6_x86_64
+    variables:
+        CMAKE_CI_JOB_NIGHTLY: "true"
+
 b:fedora37-ninja:
     extends:
         - .fedora37_ninja

+ 4 - 0
.gitlab/ci/configure_linux_clang_cxx_modules_ninja.cmake

@@ -0,0 +1,4 @@
+set(CMake_TEST_MODULE_COMPILATION "named,partitions,internal_partitions,export_bmi,install_bmi,shared" CACHE STRING "")
+set(CMake_TEST_MODULE_COMPILATION_RULES "${CMAKE_CURRENT_LIST_DIR}/cxx_modules_rules_clang.cmake" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 4 - 0
.gitlab/ci/configure_linux_clang_cxx_modules_ninja_multi.cmake

@@ -0,0 +1,4 @@
+set(CMake_TEST_MODULE_COMPILATION "named,partitions,internal_partitions,export_bmi,install_bmi,shared" CACHE STRING "")
+set(CMake_TEST_MODULE_COMPILATION_RULES "${CMAKE_CURRENT_LIST_DIR}/cxx_modules_rules_clang.cmake" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 22 - 0
.gitlab/os-linux.yml

@@ -372,6 +372,28 @@
         CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja_multi
         CMAKE_GENERATOR: "Ninja Multi-Config"
 
+.clang_cxx_modules_x86_64:
+    image: "kitware/cmake:ci-clang_cxx_modules-x86_64-2022-12-02"
+
+    variables:
+        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
+        CMAKE_ARCH: x86_64
+        CC: "/opt/llvm-p1689/bin/clang"
+        CXX: "/opt/llvm-p1689/bin/clang++"
+
+.clang_cxx_modules_ninja:
+    extends: .clang_cxx_modules_x86_64
+
+    variables:
+        CMAKE_CONFIGURATION: linux_clang_cxx_modules_ninja
+
+.clang_cxx_modules_ninja_multi:
+    extends: .clang_cxx_modules_x86_64
+
+    variables:
+        CMAKE_CONFIGURATION: linux_clang_cxx_modules_ninja_multi
+        CMAKE_GENERATOR: "Ninja Multi-Config"
+
 ## Tags
 
 .linux_x86_64_tags: