Bläddra i källkod

ci: Subsume Clang C++ modules testing in main Fedora+Clang jobs

Fedora 38 comes with LLVM/Clang 16.0, which supports the features we
need for C++ modules.
Brad King 2 år sedan
förälder
incheckning
1689e0a118

+ 10 - 20
.gitlab-ci.yml

@@ -205,6 +205,16 @@ t:fedora38-ninja-clang:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
+t:fedora38-ninja-multi-clang:
+    extends:
+        - .fedora38_ninja_multi_clang
+        - .cmake_test_linux_release
+        - .linux_x86_64_tags
+        - .run_dependent
+        - .needs_centos6_x86_64
+    variables:
+        CMAKE_CI_JOB_NIGHTLY: "true"
+
 t:fedora38-makefiles-clang:
     extends:
         - .fedora38_makefiles_clang
@@ -334,26 +344,6 @@ 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:fedora38-ninja:
     extends:
         - .fedora38_ninja

+ 3 - 0
.gitlab/ci/configure_fedora38_ninja_clang.cmake

@@ -1 +1,4 @@
+set(CMake_TEST_MODULE_COMPILATION "named,collation,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_fedora38_common_clang.cmake")

+ 1 - 1
.gitlab/ci/configure_linux_clang_cxx_modules_ninja.cmake → .gitlab/ci/configure_fedora38_ninja_multi_clang.cmake

@@ -1,4 +1,4 @@
 set(CMake_TEST_MODULE_COMPILATION "named,collation,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")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora38_common_clang.cmake")

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

@@ -1,4 +0,0 @@
-set(CMake_TEST_MODULE_COMPILATION "named,collation,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")

+ 0 - 13
.gitlab/ci/docker/clang_cxx_modules/Dockerfile

@@ -1,13 +0,0 @@
-FROM fedora:37
-MAINTAINER Ben Boeckel <[email protected]>
-
-# Install build dependencies for packages.
-COPY install_deps.sh /root/install_deps.sh
-RUN sh /root/install_deps.sh
-
-COPY install_llvm.sh /root/install_llvm.sh
-RUN sh /root/install_llvm.sh
-
-# Install build dependencies for CMake's CI.
-COPY install_cmake_deps.sh /root/install_cmake_deps.sh
-RUN sh /root/install_cmake_deps.sh

+ 0 - 7
.gitlab/ci/docker/clang_cxx_modules/install_cmake_deps.sh

@@ -1,7 +0,0 @@
-#!/bin/sh
-
-set -e
-
-dnf install -y --setopt=install_weak_deps=False \
-    file git-core
-dnf clean all

+ 0 - 7
.gitlab/ci/docker/clang_cxx_modules/install_deps.sh

@@ -1,7 +0,0 @@
-#!/bin/sh
-
-set -e
-
-dnf install -y --setopt=install_weak_deps=False \
-    gcc-c++ cmake ninja-build
-dnf clean all

+ 0 - 39
.gitlab/ci/docker/clang_cxx_modules/install_llvm.sh

@@ -1,39 +0,0 @@
-#!/bin/sh
-
-set -e
-
-readonly revision="6d859df46e93e04bd7a4f90d9a9056763998f638" # llvmorg-16.0.0-rc2-31-g6d859df46e93
-readonly tarball="https://github.com/llvm/llvm-project/archive/$revision.tar.gz"
-
-readonly workdir="$HOME/llvm"
-readonly srcdir="$workdir/llvm"
-readonly builddir="$workdir/build"
-
-mkdir -p "$workdir"
-cd "$workdir"
-curl -L "$tarball" > "llvm-$revision.tar.gz"
-tar xf "llvm-$revision.tar.gz"
-mv "llvm-project-$revision" "$srcdir"
-mkdir -p "$builddir"
-cd "$builddir"
-cmake -GNinja \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DBUILD_SHARED_LIBS=ON \
-    -DLLVM_ENABLE_BINDINGS=OFF \
-    -DLLVM_INCLUDE_BENCHMARKS=OFF \
-    -DLLVM_INCLUDE_DOCS=OFF \
-    -DLLVM_INCLUDE_EXAMPLES=OFF \
-    -DLLVM_INCLUDE_RUNTIMES=OFF \
-    -DLLVM_INCLUDE_TESTS=OFF \
-    -DLLVM_INCLUDE_UTILS=OFF \
-    -DLLVM_TARGETS_TO_BUILD=X86 \
-    -DLLVM_TOOL_CLANG_BUILD=ON \
-    -DLLVM_USE_SYMLINKS=ON \
-    "-DLLVM_EXTERNAL_CLANG_SOURCE_DIR=$srcdir/clang" \
-    -DLLVM_PARALLEL_LINK_JOBS=1 \
-    -DCLANG_BUILD_TOOLS=ON \
-    "-DCMAKE_INSTALL_PREFIX=/opt/llvm-p1689" \
-    "$srcdir/llvm"
-ninja
-ninja install/strip
-rm -rf "$workdir"

+ 1 - 0
.gitlab/ci/env_fedora38_ninja_multi_clang.sh

@@ -0,0 +1 @@
+. .gitlab/ci/env_fedora38_common_clang.sh

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

@@ -213,6 +213,13 @@
     variables:
         CMAKE_CONFIGURATION: fedora38_ninja_clang
 
+.fedora38_ninja_multi_clang:
+    extends: .fedora38
+
+    variables:
+        CMAKE_CONFIGURATION: fedora38_ninja_multi_clang
+        CMAKE_GENERATOR: "Ninja Multi-Config"
+
 ### Sanitizers
 
 .fedora_memcheck:
@@ -376,28 +383,6 @@
         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-2023-02-15"
-
-    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: