diff --git a/scripts/cmake/CCacheSetup.cmake b/scripts/cmake/CCacheSetup.cmake index fd5f315a42a954b6dad7c8f9c071e54e629ac86a..9e2f080ac6ce92a184901e940d39b776f6de4516 100644 --- a/scripts/cmake/CCacheSetup.cmake +++ b/scripts/cmake/CCacheSetup.cmake @@ -2,6 +2,19 @@ if(NOT CCACHE_TOOL_PATH) return() endif() +# Check ccache version +set(CCACHE_VERSION_REQUIRED 3.2.0) +execute_process(COMMAND ${CCACHE_TOOL_PATH} --version + OUTPUT_VARIABLE CCACHE_VERSION +) +if("${CCACHE_VERSION}" MATCHES "ccache version ([0-9]\\.[0-9]\\.[0-9])") + if(${CMAKE_MATCH_1} VERSION_LESS ${CCACHE_VERSION_REQUIRED}) + message(STATUS "CCache outdated. Installed: ${CMAKE_MATCH_1}, \ + required: ${CCACHE_VERSION_REQUIRED}. Caching disabled.") + return() + endif() +endif() + # Set ccache as the compiler launcher set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)