forked from lthn/blockchain
26 lines
No EOL
1.3 KiB
CMake
26 lines
No EOL
1.3 KiB
CMake
find_program(CCACHE_FOUND ccache)
|
|
if (CCACHE_FOUND)
|
|
# Try to compile a test program with ccache, in order to verify if it really works. (needed on exotic setups)
|
|
set(TEST_PROJECT "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakeTmp")
|
|
file(WRITE "${TEST_PROJECT}/CMakeLists.txt" [=[
|
|
cmake_minimum_required(VERSION 3.10)
|
|
project(test)
|
|
option (CCACHE "")
|
|
file(WRITE "${CMAKE_SOURCE_DIR}/test.cpp" "int main() { return 0; }")
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE} cache_dir=${CMAKE_SOURCE_DIR}/build/.ccache")
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE} cache_dir=${CMAKE_SOURCE_DIR}/build/.ccache")
|
|
add_executable(main test.cpp)
|
|
]=])
|
|
try_compile(RET "${TEST_PROJECT}/build" "${TEST_PROJECT}" "test" CMAKE_FLAGS -DCCACHE="${CCACHE_FOUND}")
|
|
unset(TEST_PROJECT)
|
|
if (${RET})
|
|
# Success
|
|
message(STATUS "Found usable ccache: ${CCACHE_FOUND}")
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_FOUND} cache_dir=${CMAKE_SOURCE_DIR}/build/.ccache")
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_FOUND} cache_dir=${CMAKE_SOURCE_DIR}/build/.ccache")
|
|
else()
|
|
message(STATUS "Found ccache ${CCACHE_FOUND}, but is UNUSABLE! Return code: ${RET}")
|
|
endif()
|
|
else()
|
|
message(STATUS "ccache NOT found! Please install it for faster rebuilds.")
|
|
endif() |