Author: Kajetan Puchalski Date: 2025-04-14T20:35:15+01:00 New Revision: 34a1afaf7412311f627af671b4339fc92acb305b
URL: https://github.com/llvm/llvm-project/commit/34a1afaf7412311f627af671b4339fc92acb305b DIFF: https://github.com/llvm/llvm-project/commit/34a1afaf7412311f627af671b4339fc92acb305b.diff LOG: Revert "[CMake] Configure ccache using command line options (#134857)" This reverts commit 904f1b17d30335b102bd05f63a73e9ed5576ba0a. Added: Modified: llvm/CMakeLists.txt Removed: ################################################################################ diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 6913fde73be67..cfd1a086c0fc2 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -271,51 +271,30 @@ set(LLVM_CCACHE_BUILD OFF CACHE BOOL "Set to ON for a ccache enabled build") if(LLVM_CCACHE_BUILD) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) - # ccache --version example output: "ccache version 4.9.1\n(..)" - execute_process(COMMAND ${CCACHE_PROGRAM} --version OUTPUT_VARIABLE CCACHE_VERSION_STR) - string(REGEX MATCH "[0-9]+\.[0-9]+\.?[0-9]*" CCACHE_VERSION "${CCACHE_VERSION_STR}") - set(LLVM_CCACHE_MAXSIZE "" CACHE STRING "Size of ccache") set(LLVM_CCACHE_DIR "" CACHE STRING "Directory to keep ccached data") + set(LLVM_CCACHE_PARAMS "CCACHE_CPP2=yes CCACHE_HASHDIR=yes" + CACHE STRING "Parameters to pass through to ccache") - # ccache only supports passing options on the command line from version 4.8.0 - # use a workaround with ad-hoc environment variables for older versions - if (CCACHE_VERSION VERSION_LESS "4.8.0") - set(LLVM_CCACHE_PARAMS "CCACHE_CPP2=yes;CCACHE_HASHDIR=yes" - CACHE STRING "Parameters to pass through to ccache") - - if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") - set(launcher_params ${LLVM_CCACHE_PARAMS}) - if (LLVM_CCACHE_MAXSIZE) - set(launcher_params CCACHE_MAXSIZE=${LLVM_CCACHE_MAXSIZE} ${launcher_params}) - endif() - if (LLVM_CCACHE_DIR) - set(launcher_params CCACHE_DIR=${LLVM_CCACHE_DIR} ${launcher_params}) - endif() - set(launcher ${launcher_params} "${CCACHE_PROGRAM}") - else() - if(LLVM_CCACHE_MAXSIZE OR LLVM_CCACHE_DIR OR - NOT LLVM_CCACHE_PARAMS MATCHES "CCACHE_CPP2=yes;CCACHE_HASHDIR=yes") - message(FATAL_ERROR "Ccache configuration through CMake is not supported on Windows. Please use environment variables.") - endif() - set(launcher "${CCACHE_PROGRAM}") - endif() - else() - set(LLVM_CCACHE_PARAMS "run_second_cpp=true;hash_dir=true" - CACHE STRING "Parameters to pass through to ccache") - - set(launcher_params ${LLVM_CCACHE_PARAMS}) + if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") + set(CCACHE_PROGRAM "${LLVM_CCACHE_PARAMS} ${CCACHE_PROGRAM}") if (LLVM_CCACHE_MAXSIZE) - set(launcher_params max_size=${LLVM_CCACHE_MAXSIZE} ${launcher_params}) + set(CCACHE_PROGRAM "CCACHE_MAXSIZE=${LLVM_CCACHE_MAXSIZE} ${CCACHE_PROGRAM}") endif() if (LLVM_CCACHE_DIR) - set(launcher_params cache_dir=${LLVM_CCACHE_DIR} ${launcher_params}) + set(CCACHE_PROGRAM "CCACHE_DIR=${LLVM_CCACHE_DIR} ${CCACHE_PROGRAM}") endif() - set(launcher "${CCACHE_PROGRAM}" ${launcher_params}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_PROGRAM}) + else() + if(LLVM_CCACHE_MAXSIZE OR LLVM_CCACHE_DIR OR + NOT LLVM_CCACHE_PARAMS MATCHES "CCACHE_CPP2=yes CCACHE_HASHDIR=yes") + message(FATAL_ERROR "Ccache configuration through CMake is not supported on Windows. Please use environment variables.") + endif() + # RULE_LAUNCH_COMPILE should work with Ninja but currently has issues + # with cmd.exe and some MSVC tools other than cl.exe + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM}) endif() - - set(CMAKE_C_COMPILER_LAUNCHER ${launcher}) - set(CMAKE_CXX_COMPILER_LAUNCHER ${launcher}) else() message(FATAL_ERROR "Unable to find the program ccache. Set LLVM_CCACHE_BUILD to OFF") endif() _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits