fix: force clang-18 via LLVM script, prefer highest version
CI / build-and-test (push) Failing after 19s
CI / build-and-test (push) Failing after 19s
<llvm.sh 18 all> 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 <format> via its own header, no flag needed).
This commit is contained in:
+5
-18
@@ -15,21 +15,9 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
apt-get update -qq
|
apt-get update -qq
|
||||||
# Clang needs libc++ for <format> on Ubuntu 22.04 (libstdc++ is pre-GCC-13)
|
apt-get install -y -qq wget lsb-release
|
||||||
if apt-cache show clang-18 >/dev/null 2>&1; then
|
wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 all
|
||||||
apt-get install -y -qq clang-18 libc++-18-dev libc++abi-18-dev ninja-build curl
|
apt-get install -y -qq 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
|
|
||||||
|
|
||||||
- name: Install CMake 3.28
|
- name: Install CMake 3.28
|
||||||
run: |
|
run: |
|
||||||
@@ -38,14 +26,13 @@ jobs:
|
|||||||
|
|
||||||
- name: Build kappa
|
- name: Build kappa
|
||||||
run: |
|
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
|
if [ -z "$CC" ]; then CC=/usr/bin/clang-18; fi
|
||||||
CXX=$(echo "$CC" | sed 's/clang-/clang++-/')
|
CXX=$(echo "$CC" | sed 's/clang-/clang++-/')
|
||||||
echo "CC=$CC CXX=$CXX"
|
echo "CC=$CC CXX=$CXX"
|
||||||
cmake -B build -G Ninja \
|
cmake -B build -G Ninja \
|
||||||
-DCMAKE_C_COMPILER="$CC" \
|
-DCMAKE_C_COMPILER="$CC" \
|
||||||
-DCMAKE_CXX_COMPILER="$CXX" \
|
-DCMAKE_CXX_COMPILER="$CXX"
|
||||||
-DCMAKE_CXX_FLAGS="-stdlib=libc++"
|
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
|
||||||
- name: DSL and CLI tests
|
- name: DSL and CLI tests
|
||||||
|
|||||||
Reference in New Issue
Block a user