From 3af9c4d35cf800d8a536c617d9c692f75e0278be Mon Sep 17 00:00:00 2001 From: Dan Church Date: Wed, 21 Mar 2018 11:57:36 -0500 Subject: [PATCH] Fix ccache support Setting the compiler launcher to "ccache" is the recommended way of enabling ccache for the build. If cmake is run with it defined, it causes an error when ccache tries to run: ccache: error: Recursive invocation (the name of the ccache binary must be "ccache") This was because the compiler was getting invoked as "ccache ccache [COMPILER]" --- CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c07616061..2d9d3382f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,8 +125,17 @@ endif(CMAKE_CROSSCOMPILING) find_program(CCACHE ccache) if(CCACHE AND WITH_CCACHE) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE}) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE}) + if(CMAKE_VERSION VERSION_GREATER 3.3.2) + if(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER) + SET(CMAKE_C_COMPILER_LAUNCHER ${CCACHE}) + endif(NOT DEFINED CMAKE_C_COMPILER_LAUNCHER) + if(NOT DEFINED CMAKE_CXX_COMPILER_LAUNCHER) + SET(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE}) + endif(NOT DEFINED CMAKE_CXX_COMPILER_LAUNCHER) + else() + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE}) + endif() endif(CCACHE AND WITH_CCACHE) if(EXISTS "${CMAKE_SOURCE_DIR}/.source_version" )