Added caching option to cmake

This commit is contained in:
Jeremy Borgman
2020-09-20 10:39:51 -05:00
committed by borgmanJeremy
parent 9c0ba07984
commit c7d557e387
2 changed files with 34 additions and 1 deletions

View File

@@ -26,6 +26,9 @@ target_compile_features(project_options INTERFACE cxx_std_17)
add_library(project_warnings INTERFACE) add_library(project_warnings INTERFACE)
# enable cache system
include(cmake/Cache.cmake)
# standard compiler warnings # standard compiler warnings
include(cmake/CompilerWarnings.cmake) include(cmake/CompilerWarnings.cmake)
# set_project_warnings(project_warnings) # set_project_warnings(project_warnings)

30
cmake/Cache.cmake Normal file
View File

@@ -0,0 +1,30 @@
option(ENABLE_CACHE "Enable cache if available" ON)
if(NOT ENABLE_CACHE)
return()
endif()
set(CACHE_OPTION
"ccache"
CACHE STRING "Compiler cache to be used")
set(CACHE_OPTION_VALUES "ccache" "sccache")
set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES})
list(
FIND
CACHE_OPTION_VALUES
${CACHE_OPTION}
CACHE_OPTION_INDEX)
if(${CACHE_OPTION_INDEX} EQUAL -1)
message(
STATUS
"Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}")
endif()
find_program(CACHE_BINARY ${CACHE_OPTION})
if(CACHE_BINARY)
message(STATUS "${CACHE_OPTION} found and enabled")
set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
else()
message(WARNING "${CACHE_OPTION} is enabled but was not found. Not using it")
endif()