From bcc21889463e911f7eddc3e59e9e26a8bdf93eb7 Mon Sep 17 00:00:00 2001 From: Rechi Date: Sat, 13 Apr 2019 19:57:10 +0200 Subject: [PATCH] [cmake] enable using ccache with xcode --- cmake/modules/FindCCache.cmake | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmake/modules/FindCCache.cmake b/cmake/modules/FindCCache.cmake index 956dee218d84c..a18d4e03e012b 100644 --- a/cmake/modules/FindCCache.cmake +++ b/cmake/modules/FindCCache.cmake @@ -12,7 +12,16 @@ include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CCache REQUIRED_VARS CCACHE_PROGRAM) if(CCACHE_FOUND) - # Supports Unix Makefiles and Ninja + # Supports Unix Makefiles, Ninja and Xcode set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") + + file(WRITE "${CMAKE_BINARY_DIR}/launch-c" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_C_COMPILER}\" \"$@\"\n") + file(WRITE "${CMAKE_BINARY_DIR}/launch-cxx" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"\n") + execute_process(COMMAND chmod +x "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx") + + set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE) + set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx" PARENT_SCOPE) + set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE) + set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx" PARENT_SCOPE) endif()