CCache: Add support for Objective-C/Objective-C++

This commit is contained in:
Joshua Vandaële
2026-01-08 16:37:38 +01:00
parent 79a4034aa0
commit d74c6b5ca5

View File

@@ -1,17 +1,13 @@
find_program(CCACHE_BIN NAMES ccache sccache)
if(CCACHE_BIN)
# Official ccache recommendation is to set CMAKE_C(XX)_COMPILER_LAUNCHER
if (NOT CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache")
list(INSERT CMAKE_C_COMPILER_LAUNCHER 0 "${CCACHE_BIN}")
set(_CCACHE_SUPPORTED_LAUCHERS C CXX OBJC OBJCXX)
foreach(LAUNCHER ${_CCACHE_SUPPORTED_LAUCHERS})
if (NOT CMAKE_${LAUNCHER}_COMPILER_LAUNCHER MATCHES "ccache")
list(INSERT CMAKE_${LAUNCHER}_COMPILER_LAUNCHER 0 ${CCACHE_BIN})
endif()
if (NOT CMAKE_CXX_COMPILER_LAUNCHER MATCHES "ccache")
list(INSERT CMAKE_CXX_COMPILER_LAUNCHER 0 "${CCACHE_BIN}")
endif()
# ccache uses -I when compiling without preprocessor, which makes clang complain.
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
if("${CMAKE_${LAUNCHER}_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_${LAUNCHER}_FLAGS "${CMAKE_${LAUNCHER}_FLAGS} -Qunused-arguments -fcolor-diagnostics")
endif()
endforeach()
endif()