Skip to content
Snippets Groups Projects
Cache.cmake 809 B
Newer Older
  • Learn to ignore specific revisions
  • Tomas Vybiral's avatar
    Tomas Vybiral committed
    option(ENABLE_CACHE "Enable cache if available" OFF)
    
    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()