cmake: allow user to select compiler cache

This commit is contained in:
jpk68
2026-07-09 18:58:48 -04:00
parent 49c9cfc315
commit 967d79f5e7
5 changed files with 20 additions and 7 deletions
+16 -3
View File
@@ -58,8 +58,11 @@ endif()
project(monero)
option (USE_COMPILER_CACHE "Use compiler cache if a usable instance is found (sccache/ccache)" ON)
if (USE_COMPILER_CACHE)
set (COMPILER_CACHE "auto" CACHE STRING "Compiler cache to use: auto, ccache, sccache, or none")
set_property(CACHE COMPILER_CACHE PROPERTY STRINGS auto ccache sccache none)
if (COMPILER_CACHE STREQUAL "none")
message(STATUS "Compiler cache deselected")
elseif (COMPILER_CACHE STREQUAL "auto")
find_program(SCCACHE sccache)
find_program(CCACHE ccache)
if (SCCACHE)
@@ -75,8 +78,18 @@ if (USE_COMPILER_CACHE)
else()
message(STATUS "No compiler cache found")
endif()
elseif (COMPILER_CACHE STREQUAL "sccache")
find_program(SCCACHE sccache REQUIRED)
message(STATUS "Using sccache: ${SCCACHE}")
set(CMAKE_C_COMPILER_LAUNCHER "${SCCACHE}")
set(CMAKE_CXX_COMPILER_LAUNCHER "${SCCACHE}")
elseif (COMPILER_CACHE STREQUAL "ccache")
find_program(CCACHE ccache REQUIRED)
message(STATUS "Using ccache: ${CCACHE}")
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE}")
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE}")
else()
message(STATUS "Compiler cache deselected")
message(FATAL_ERROR "Invalid COMPILER_CACHE value '${COMPILER_CACHE}': expected auto, ccache, sccache, or none")
endif()
option (USE_COMPILATION_TIME_PROFILER "Use compilation time profiler (for CLang >= 9 only)" OFF)
+1 -1
View File
@@ -336,7 +336,7 @@ mkdir -p "$DISTSRC"
esac
# Turn off unused default options
CMAKEFLAGS+=" -DUSE_COMPILER_CACHE=OFF -DBUILD_DOCUMENTATION=OFF"
CMAKEFLAGS+=" -DCOMPILER_CACHE=none -DBUILD_DOCUMENTATION=OFF"
# Configure this DISTSRC for $HOST
# shellcheck disable=SC2086
@@ -56,7 +56,7 @@ mkdir -p "$DIR_BUILD" && cd "$DIR_BUILD"
cmake ../.. \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DUSE_COMPILER_CACHE=OFF \
-DCOMPILER_CACHE=none \
-DUSE_COMPILATION_TIME_PROFILER=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTS=ON
@@ -56,7 +56,7 @@ UWYU_COMMAND="$PROG;-Xiwyu;any;-Xiwyu;iwyu;-Xiwyu;args" # Copy-pasted from the u
cmake ../.. \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DUSE_COMPILER_CACHE=ON \
-DCOMPILER_CACHE=auto \
-DCMAKE_C_INCLUDE_WHAT_YOU_USE="$UWYU_COMMAND" \
-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="$UWYU_COMMAND" \
-DBUILD_SHARED_LIBS=ON \
+1 -1
View File
@@ -45,7 +45,7 @@ function tidy_for_language() {
cmake ../.. \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DUSE_COMPILER_CACHE=ON \
-DCOMPILER_CACHE=auto \
-DUSE_CLANG_TIDY_${LANG}=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTS=ON