diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bb5a71319..0a167ab78c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,6 +150,9 @@ function(enable_precompiled_headers PRECOMPILED_HEADER SOURCE_FILE SOURCE_VARIAB endif(MSVC) endfunction(enable_precompiled_headers) +# setup CCache +include(CCache) + # for revision info find_package(Git) if(GIT_FOUND AND NOT DOLPHIN_WC_REVISION) diff --git a/CMakeTests/CCache.cmake b/CMakeTests/CCache.cmake new file mode 100644 index 0000000000..9388b0a28f --- /dev/null +++ b/CMakeTests/CCache.cmake @@ -0,0 +1,11 @@ +find_program(CCACHE_BIN ccache) +if(CCACHE_BIN) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_BIN}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_BIN}) + + # ccache uses -I when compiling without preprocessor, which makes clang complain. + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics") + endif() +endif()