]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
build: Require a C++-20 compiler
authorJoel Rosdahl <joel@rosdahl.net>
Tue, 3 Feb 2026 19:26:38 +0000 (20:26 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Tue, 3 Feb 2026 19:26:38 +0000 (20:26 +0100)
CMakeLists.txt
cmake/CodeAnalysis.cmake
doc/install.md
dockerfiles/alma-8/Dockerfile
misc/build-in-docker
misc/test-some-systems

index 6ed89db9a07167c1944b1eb7cff8c0de01f5b997..9f934fc0de9edb6e34840ee69f46c73ad23728dc 100644 (file)
@@ -8,7 +8,7 @@ else()
 endif()
 set(CMAKE_PROJECT_DESCRIPTION "a fast C/C++ compiler cache")
 
-set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD 20)
 set(CMAKE_CXX_STANDARD_REQUIRED YES)
 set(CMAKE_CXX_EXTENSIONS NO)
 
index 7bba40d2353c2446b85c8ec7ccef217a765e1e18..09185595445154ec0baace2129f658b8ac1b84a9 100644 (file)
@@ -10,7 +10,7 @@ if(ENABLE_CPPCHECK)
         -q
         --enable=all
         --force
-        --std=c++17
+        --std=c++20
         -I ${CMAKE_SOURCE_DIR}
         --template="cppcheck: warning: {id}:{file}:{line}: {message}"
         -i src/third_party)
index b0dc5a78bec11d94294a4a2b620fe5a35449865c..c92ed95f93be0dd3d9c98e65f24f29ec0183d8fb 100644 (file)
@@ -5,7 +5,7 @@
 **Required:**
 
 - CMake 3.15 or newer
-- A C++17 compiler (see [Supported platforms, compilers and
+- A C++20 compiler (see [Supported platforms, compilers and
   languages](https://ccache.dev/platform-compiler-language-support.html) for
   details)
 - A C99 compiler
index 723f9023d265dec1ebaa6acac6837b6b5544c33a..26a42fe8f089d31b7e905e9a7ee36da4686c826f 100644 (file)
@@ -17,6 +17,7 @@ RUN dnf install -y dnf-plugins-core \
         fmt-devel \
         gcc \
         gcc-c++ \
+        gcc-toolset-11 \
         hiredis-devel \
         less \
         libstdc++-static \
index f6811c76d93b062fd43c008328aa2b6838be7fcb..34aba840ce1518c460d304e2c6312f23c2f771e7 100755 (executable)
@@ -23,6 +23,7 @@ shift
 
 top_dir="$(dirname "$(realpath "$0")")/.."
 tag="ccache-build:$name"
+launcher="${LAUNCHER:-}"
 command="${COMMAND:-/source/ci/build}"
 interactive="${INTERACTIVE:+--interactive --tty}"
 nocache="${NOCACHE:+--no-cache}"
@@ -57,4 +58,4 @@ docker run \
     --env VERBOSE="${VERBOSE:-}" \
     $interactive \
     "$tag" \
-    "$command" "$@"
+    sh -c "$launcher $command" "$@"
index 482374839bccee9cd9cc603d1092cffa3b534aca..cade6ac38b138e711efba1aebf19809d994b9bf0 100755 (executable)
@@ -13,8 +13,8 @@ build() {
     local cc=$2
     local cxx=$3
     local test_cc=$4
-    shift 4
-    local cmake_params="$*"
+    local cmake_params=${5:-}
+    local launcher=${6:-}
 
     echo "======================================================================"
     echo "=== ${name} ${cc} ${cxx} ${test_cc} ${cmake_params}"
@@ -25,42 +25,43 @@ build() {
     fi
 
     if command -v >/dev/null ccache; then
-        cmake_params="${cmake_params} -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
+        cmake_params="${cmake_params} -DCMAKE_C_COMPILER_LAUNCHERER=ccache -DCMAKE_CXX_COMPILER_LAUNCHERER=ccache"
     fi
     echo "Build in Docker: $name CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS=\"$*\""
-    ASM=$cc CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS="${cmake_params}" $build_in_docker $name
+    ASM=$cc CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS="${cmake_params}" LAUNCHER="${launcher}"\
+      bash -x $build_in_docker $name
 }
 
 #     NAME         CC     CXX     TEST_CC CMAKE_PARAMS
 
-build alma-8       gcc    g++     gcc     -D DEPS=DOWNLOAD
-build alma-8       clang  clang++ clang   -D DEPS=DOWNLOAD
+build alma-8       gcc    g++     gcc     "-D DEPS=DOWNLOAD" "scl enable gcc-toolset-11"
+build alma-8       clang  clang++ clang   "-D DEPS=DOWNLOAD" "scl enable gcc-toolset-11"
 
-build alma-9       gcc    g++     gcc     -D DEPS=DOWNLOAD
-build alma-9       clang  clang++ clang   -D DEPS=DOWNLOAD
+build alma-9       gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build alma-9       clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
-build alma-10      gcc    g++     gcc     -D DEPS=DOWNLOAD
-build alma-10      clang  clang++ clang   -D DEPS=DOWNLOAD
+build alma-10      gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build alma-10      clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
 build alpine-3.23  gcc    g++     gcc
-build alpine-3.23  clang  clang++ clang   -D DEPS=DOWNLOAD
+build alpine-3.23  clang  clang++ clang   "-D DEPS=DOWNLOAD -D ENABLE_TESTING=OFF" # doctest issue #900
 
-build debian-11    gcc    g++     gcc     -D DEPS=DOWNLOAD
-build debian-11    clang  clang++ clang   -D DEPS=DOWNLOAD
+build debian-11    gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build debian-11    clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
-build debian-12    gcc    g++     gcc     -D DEPS=DOWNLOAD
-build debian-12    clang  clang++ clang   -D DEPS=DOWNLOAD
+build debian-12    gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build debian-12    clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
-build debian-13    gcc    g++     gcc     -D DEPS=DOWNLOAD
-build debian-13    clang  clang++ clang   -D DEPS=DOWNLOAD
+build debian-13    gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build debian-13    clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
-build fedora-42    gcc    g++     gcc     -D DEPS=DOWNLOAD
-build fedora-42    clang  clang++ clang   -D DEPS=DOWNLOAD -D ENABLE_TESTING=OFF # doctest issue #900
+build fedora-42    gcc    g++     gcc     "-D DEPS=DOWNLOAD"
+build fedora-42    clang  clang++ clang   "-D DEPS=DOWNLOAD -D ENABLE_TESTING=OFF" # doctest issue #900
 
-build ubuntu-22.04 gcc-11 g++-11  gcc     -D DEPS=DOWNLOAD
-build ubuntu-22.04 gcc-12 g++-12  gcc     -D DEPS=DOWNLOAD
-build ubuntu-22.04 clang  clang++ clang   -D DEPS=DOWNLOAD
+build ubuntu-22.04 gcc-11 g++-11  gcc     "-D DEPS=DOWNLOAD"
+build ubuntu-22.04 gcc-12 g++-12  gcc     "-D DEPS=DOWNLOAD"
+build ubuntu-22.04 clang  clang++ clang   "-D DEPS=DOWNLOAD"
 
-build ubuntu-24.04 gcc-13 g++-13  gcc     -D DEPS=DOWNLOAD
-build ubuntu-24.04 gcc-14 g++-14  gcc     -D DEPS=DOWNLOAD
-build ubuntu-24.04 clang  clang++ clang   -D DEPS=DOWNLOAD
+build ubuntu-24.04 gcc-13 g++-13  gcc     "-D DEPS=DOWNLOAD"
+build ubuntu-24.04 gcc-14 g++-14  gcc     "-D DEPS=DOWNLOAD"
+build ubuntu-24.04 clang  clang++ clang   "-D DEPS=DOWNLOAD"