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.
This commit is contained in:
Brad King
2023-05-22 13:41:30 -04:00
parent bdaa9e1e4e
commit 1689e0a118
10 changed files with 22 additions and 113 deletions
+10 -20
View File
@@ -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
@@ -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,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")
@@ -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")
@@ -1,13 +0,0 @@
FROM fedora:37
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
# 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
@@ -1,7 +0,0 @@
#!/bin/sh
set -e
dnf install -y --setopt=install_weak_deps=False \
file git-core
dnf clean all
@@ -1,7 +0,0 @@
#!/bin/sh
set -e
dnf install -y --setopt=install_weak_deps=False \
gcc-c++ cmake ninja-build
dnf clean all
@@ -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"
@@ -0,0 +1 @@
. .gitlab/ci/env_fedora38_common_clang.sh
+7 -22
View File
@@ -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: