From 71d2eadcb92396fdc984150a9fc4504b6d8e9000 Mon Sep 17 00:00:00 2001 From: huntedbytheirs Date: Tue, 4 Aug 2026 14:27:13 -0400 Subject: [PATCH] fix: force clang-18 via LLVM script, prefer highest version installs clang-18 with full C++23 support. sort -V ensures the highest clang version is selected when multiple are installed. Removes -stdlib=libc++ (clang-18 provides via its own header, no flag needed). --- .gitea/workflows/ci.yml | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 7c5b02d..32f3825 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -15,21 +15,9 @@ jobs: - name: Install dependencies run: | apt-get update -qq - # Clang needs libc++ for on Ubuntu 22.04 (libstdc++ is pre-GCC-13) - if apt-cache show clang-18 >/dev/null 2>&1; then - apt-get install -y -qq clang-18 libc++-18-dev libc++abi-18-dev ninja-build curl - elif apt-cache show clang-17 >/dev/null 2>&1; then - apt-get install -y -qq clang-17 libc++-17-dev libc++abi-17-dev ninja-build curl - elif apt-cache show clang-16 >/dev/null 2>&1; then - apt-get install -y -qq clang-16 libc++-16-dev libc++abi-16-dev ninja-build curl - elif apt-cache show clang-15 >/dev/null 2>&1; then - apt-get install -y -qq clang-15 libc++-15-dev libc++abi-15-dev ninja-build curl - else - # Ubuntu 20.04: install from LLVM repo - apt-get install -y -qq wget lsb-release - wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 - apt-get install -y -qq libc++-18-dev libc++abi-18-dev ninja-build curl - fi + apt-get install -y -qq wget lsb-release + wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 all + apt-get install -y -qq ninja-build curl - name: Install CMake 3.28 run: | @@ -38,14 +26,13 @@ jobs: - name: Build kappa run: | - CC=$(find /usr/bin -maxdepth 1 \( -name 'clang-1[5-9]' -o -name 'clang-2[0-9]' \) 2>/dev/null | head -1) + CC=$(find /usr/bin -maxdepth 1 \( -name 'clang-1[5-9]' -o -name 'clang-2[0-9]' \) 2>/dev/null | sort -V | tail -1) if [ -z "$CC" ]; then CC=/usr/bin/clang-18; fi CXX=$(echo "$CC" | sed 's/clang-/clang++-/') echo "CC=$CC CXX=$CXX" cmake -B build -G Ninja \ -DCMAKE_C_COMPILER="$CC" \ - -DCMAKE_CXX_COMPILER="$CXX" \ - -DCMAKE_CXX_FLAGS="-stdlib=libc++" + -DCMAKE_CXX_COMPILER="$CXX" cmake --build build - name: DSL and CLI tests