[llvm] 2b58b3d - Revert "[CMake] Configure ccache using command line options" (#135664)

via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 14 12:35:55 PDT 2025


Author: Kajetan Puchalski
Date: 2025-04-14T20:35:52+01:00
New Revision: 2b58b3df0bad3de1887fcb113a5eed7ab714812a

URL: https://github.com/llvm/llvm-project/commit/2b58b3df0bad3de1887fcb113a5eed7ab714812a
DIFF: https://github.com/llvm/llvm-project/commit/2b58b3df0bad3de1887fcb113a5eed7ab714812a.diff

LOG: Revert "[CMake] Configure ccache using command line options" (#135664)

Reverts llvm/llvm-project#134857

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()


        


More information about the llvm-commits mailing list