From 5668708fedca436b31b81d203a121e2b07a66965 Mon Sep 17 00:00:00 2001 From: huntedbytheirs Date: Tue, 4 Aug 2026 14:21:10 -0400 Subject: [PATCH] fix: detect and install Clang 15-18 with LLVM fallback - Tries apt clang-18/17/16/15 first (Ubuntu 22.04+) - Falls back to LLVM repo install for Ubuntu 20.04 - Auto-detects installed clang version for CMake compiler flags - Both CMake 3.28 (binary download) and C++23 compiler required --- .gitea/workflows/ci.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index b4dfdf7..b367751 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -15,7 +15,21 @@ jobs: - name: Install dependencies run: | apt-get update -qq - apt-get install -y -qq clang ninja-build curl + # Try clang-15+ first (Ubuntu 22.04+) + if apt-cache show clang-18 >/dev/null 2>&1; then + apt-get install -y -qq clang-18 ninja-build curl + elif apt-cache show clang-17 >/dev/null 2>&1; then + apt-get install -y -qq clang-17 ninja-build curl + elif apt-cache show clang-16 >/dev/null 2>&1; then + apt-get install -y -qq clang-16 ninja-build curl + elif apt-cache show clang-15 >/dev/null 2>&1; then + apt-get install -y -qq clang-15 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 ninja-build curl + fi - name: Install CMake 3.28 run: | @@ -24,9 +38,12 @@ jobs: - name: Build kappa run: | + CC=$(ls /usr/bin/clang-1[5-9] /usr/bin/clang-2[0-9] 2>/dev/null | head -1) + if [ -z "$CC" ]; then CC=/usr/bin/clang-18; fi + CXX="${CC}++" cmake -B build -G Ninja \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_CXX_COMPILER="$CXX" cmake --build build - name: DSL and CLI tests