This commit continas:

1. Enable cache if available:
2. The function to prevent in-source builds
This commit is contained in:
Mateusz Ozga
2024-09-12 14:25:29 +00:00
parent 448c0f56d8
commit 20d6b58b5e
3 changed files with 48 additions and 0 deletions

View File

@@ -99,6 +99,12 @@ if(INSTANCES_ONLY)
set(CK_ENABLE_INSTANCES_ONLY "ON")
endif()
# enable prevent in source build
include(PreventInSourceBuilds)
# enable cache system
include(Cache)
include(getopt)
# CK version file to record release version as well as git commit hash

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
"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()

View File

@@ -0,0 +1,12 @@
function(AssureOutOfSourceBuilds)
get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH)
get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
if("${srcdir}" STREQUAL "${bindir}")
message("Warning: in-source builds are disabled")
message("Please create a separate build directory and run cmake from there")
message(FATAL_ERROR "Quitting configuration")
endif()
endfunction()
assureOutOfSourceBuilds()