# Use ccache if found ccache program if(NOT WIN32) find_program(CCACHE_PATH ccache) if(CCACHE_PATH) execute_process(COMMAND ccache -V OUTPUT_VARIABLE ccache_output) execute_process(COMMAND ccache -s cache directory OUTPUT_VARIABLE cache_directory) string(REGEX MATCH "[0-9]+.[0-9]+" ccache_version ${ccache_output}) message(STATUS "ccache is founded, use ccache to speed up compile on Unix.") # show statistics summary of ccache message("ccache version\t\t\t " ${ccache_version} "\n" ${cache_directory}) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_PATH}) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_PATH}) endif() elseif("${CMAKE_GENERATOR}" STREQUAL "Ninja") # (Note:zhouwei25) Only Ninja Generator can support sccache now find_program(SCCACHE_PATH sccache) if(SCCACHE_PATH) execute_process(COMMAND sccache -V OUTPUT_VARIABLE sccache_version) message( STATUS "sccache is founded, use [${SCCACHE_PATH}] to speed up compile on Windows." ) set(CMAKE_C_COMPILER_LAUNCHER ${SCCACHE_PATH}) set(CMAKE_CXX_COMPILER_LAUNCHER ${SCCACHE_PATH}) # (Note:zhouwei25) sccache for cuda compiler has bug so that it can't be hit # refer to https://github.com/mozilla/sccache/issues/1017, so we fix it set(CMAKE_CUDA_COMPILER_LAUNCHER ${SCCACHE_PATH}) endif() endif()