Cache.cmake 858 Bytes
Newer Older
Mateusz Ozga's avatar
Mateusz Ozga committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
option(ENABLE_CACHE "Enable cache if available" ON)
if(NOT ENABLE_CACHE)
  return()
endif()

set(CACHE_OPTION
    "sccache"
    CACHE STRING "Compiler cache to be used")
set(CACHE_OPTION_VALUES "sccache" "ccache")
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})
  set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
else()
  message(WARNING "${CACHE_OPTION} is enabled but was not found. Not using it")
endif()