fix: install libc++ alongside clang for <format> support
CI / build-and-test (push) Failing after 39s

Clang 16 on Ubuntu 22.04 uses libstdc++ 12 which lacks <format>.
Install libc++-dev and pass -stdlib=libc++ to CMake.
This commit is contained in:
2026-08-04 14:25:41 -04:00
parent 3302712336
commit dc782e941c
+8 -7
View File
@@ -15,20 +15,20 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
apt-get update -qq apt-get update -qq
# Try clang-15+ first (Ubuntu 22.04+) # Clang needs libc++ for <format> on Ubuntu 22.04 (libstdc++ is pre-GCC-13)
if apt-cache show clang-18 >/dev/null 2>&1; then if apt-cache show clang-18 >/dev/null 2>&1; then
apt-get install -y -qq clang-18 ninja-build curl 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 elif apt-cache show clang-17 >/dev/null 2>&1; then
apt-get install -y -qq clang-17 ninja-build curl 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 elif apt-cache show clang-16 >/dev/null 2>&1; then
apt-get install -y -qq clang-16 ninja-build curl 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 elif apt-cache show clang-15 >/dev/null 2>&1; then
apt-get install -y -qq clang-15 ninja-build curl apt-get install -y -qq clang-15 libc++-15-dev libc++abi-15-dev ninja-build curl
else else
# Ubuntu 20.04: install from LLVM repo # Ubuntu 20.04: install from LLVM repo
apt-get install -y -qq wget lsb-release apt-get install -y -qq wget lsb-release
wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18
apt-get install -y -qq ninja-build curl apt-get install -y -qq libc++-18-dev libc++abi-18-dev ninja-build curl
fi fi
- name: Install CMake 3.28 - name: Install CMake 3.28
@@ -44,7 +44,8 @@ jobs:
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