Add NO_CACHE option (#128)

* add NO_CACHE option

* add unit test
This commit is contained in:
Lars Melchior
2020-06-04 14:22:57 +02:00
committed by GitHub
parent b31063d2ae
commit 139d3cacba
3 changed files with 23 additions and 22 deletions

View File

@@ -3,17 +3,13 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
include(${CPM_PATH}/testing.cmake)
include(CMakePackageConfigHelpers)
set(CPM_SOURCE_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/CPM")
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cache)
function(clear_cache)
message(STATUS "clearing CPM cache")
FILE(REMOVE_RECURSE ${CPM_SOURCE_CACHE_DIR})
if (EXISTS "${CPM_SOURCE_CACHE_DIR}")
ASSERTION_FAILED("cache not cleared")
endif()
ASSERT_NOT_EXISTS("${CPM_SOURCE_CACHE_DIR}")
endfunction()
function(update_cmake_lists)
@@ -43,10 +39,7 @@ execute_process(
)
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
ASSERT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")
FILE(GLOB FIBONACCI_VERSIONs "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
list(LENGTH FIBONACCI_VERSIONs FIBONACCI_VERSION_count)
@@ -84,10 +77,7 @@ execute_process(
)
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
ASSERT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")
## Read CPM_SOURCE_CACHE from environment
@@ -100,10 +90,7 @@ execute_process(
)
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
ASSERT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")
## Reuse cached packages for other build
@@ -126,7 +113,19 @@ execute_process(
)
ASSERT_EQUAL(${ret} "0")
ASSERT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
## Use NO_CACHE option
set(FIBONACCI_PACKAGE_ARGS "NO_CACHE YES")
update_cmake_lists()
reset_test()
execute_process(
COMMAND
${CMAKE_COMMAND} -E env "CPM_SOURCE_CACHE=${CPM_SOURCE_CACHE_DIR}" ${CMAKE_COMMAND} "-H${CMAKE_CURRENT_LIST_DIR}/cache" "-B${TEST_BUILD_DIR}"
RESULT_VARIABLE ret
)
ASSERT_EQUAL(${ret} "0")
ASSERT_NOT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")

View File

@@ -14,6 +14,7 @@ CPMAddPackage(
NAME fibonacci
GIT_REPOSITORY https://github.com/TheLartians/Fibonacci.git
VERSION @FIBONACCI_VERSION@
@FIBONACCI_PACKAGE_ARGS@
)
# ---- Create binary ----