mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-24 13:18:07 -05:00
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||||
|
|
||||||
set(CURRENT_CPM_VERSION 0.26.2)
|
set(CURRENT_CPM_VERSION 0.27)
|
||||||
|
|
||||||
if(CPM_DIRECTORY)
|
if(CPM_DIRECTORY)
|
||||||
if(NOT CPM_DIRECTORY STREQUAL CMAKE_CURRENT_LIST_DIR)
|
if(NOT CPM_DIRECTORY STREQUAL CMAKE_CURRENT_LIST_DIR)
|
||||||
@@ -190,6 +190,7 @@ function(CPMAddPackage)
|
|||||||
SOURCE_DIR
|
SOURCE_DIR
|
||||||
DOWNLOAD_COMMAND
|
DOWNLOAD_COMMAND
|
||||||
FIND_PACKAGE_ARGUMENTS
|
FIND_PACKAGE_ARGUMENTS
|
||||||
|
NO_CACHE
|
||||||
)
|
)
|
||||||
|
|
||||||
set(multiValueArgs
|
set(multiValueArgs
|
||||||
@@ -296,7 +297,7 @@ function(CPMAddPackage)
|
|||||||
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS DOWNLOAD_COMMAND ${CPM_ARGS_DOWNLOAD_COMMAND})
|
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS DOWNLOAD_COMMAND ${CPM_ARGS_DOWNLOAD_COMMAND})
|
||||||
elseif (DEFINED CPM_ARGS_SOURCE_DIR)
|
elseif (DEFINED CPM_ARGS_SOURCE_DIR)
|
||||||
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${CPM_ARGS_SOURCE_DIR})
|
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${CPM_ARGS_SOURCE_DIR})
|
||||||
elseif (CPM_SOURCE_CACHE)
|
elseif (CPM_SOURCE_CACHE AND NOT CPM_ARGS_NO_CACHE)
|
||||||
string(TOLOWER ${CPM_ARGS_NAME} lower_case_name)
|
string(TOLOWER ${CPM_ARGS_NAME} lower_case_name)
|
||||||
set(origin_parameters ${CPM_ARGS_UNPARSED_ARGUMENTS})
|
set(origin_parameters ${CPM_ARGS_UNPARSED_ARGUMENTS})
|
||||||
list(SORT origin_parameters)
|
list(SORT origin_parameters)
|
||||||
|
|||||||
@@ -3,17 +3,13 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
|||||||
include(${CPM_PATH}/testing.cmake)
|
include(${CPM_PATH}/testing.cmake)
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
|
||||||
set(CPM_SOURCE_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/CPM")
|
set(CPM_SOURCE_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/CPM")
|
||||||
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cache)
|
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cache)
|
||||||
|
|
||||||
function(clear_cache)
|
function(clear_cache)
|
||||||
message(STATUS "clearing CPM cache")
|
message(STATUS "clearing CPM cache")
|
||||||
FILE(REMOVE_RECURSE ${CPM_SOURCE_CACHE_DIR})
|
FILE(REMOVE_RECURSE ${CPM_SOURCE_CACHE_DIR})
|
||||||
|
ASSERT_NOT_EXISTS("${CPM_SOURCE_CACHE_DIR}")
|
||||||
if (EXISTS "${CPM_SOURCE_CACHE_DIR}")
|
|
||||||
ASSERTION_FAILED("cache not cleared")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(update_cmake_lists)
|
function(update_cmake_lists)
|
||||||
@@ -43,10 +39,7 @@ execute_process(
|
|||||||
)
|
)
|
||||||
|
|
||||||
ASSERT_EQUAL(${ret} "0")
|
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()
|
|
||||||
|
|
||||||
FILE(GLOB FIBONACCI_VERSIONs "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
|
FILE(GLOB FIBONACCI_VERSIONs "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
|
||||||
list(LENGTH FIBONACCI_VERSIONs FIBONACCI_VERSION_count)
|
list(LENGTH FIBONACCI_VERSIONs FIBONACCI_VERSION_count)
|
||||||
@@ -84,10 +77,7 @@ execute_process(
|
|||||||
)
|
)
|
||||||
|
|
||||||
ASSERT_EQUAL(${ret} "0")
|
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()
|
|
||||||
|
|
||||||
## Read CPM_SOURCE_CACHE from environment
|
## Read CPM_SOURCE_CACHE from environment
|
||||||
|
|
||||||
@@ -100,10 +90,7 @@ execute_process(
|
|||||||
)
|
)
|
||||||
|
|
||||||
ASSERT_EQUAL(${ret} "0")
|
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()
|
|
||||||
|
|
||||||
## Reuse cached packages for other build
|
## Reuse cached packages for other build
|
||||||
|
|
||||||
@@ -126,7 +113,19 @@ execute_process(
|
|||||||
)
|
)
|
||||||
|
|
||||||
ASSERT_EQUAL(${ret} "0")
|
ASSERT_EQUAL(${ret} "0")
|
||||||
|
ASSERT_EXISTS("${CPM_SOURCE_CACHE_DIR}/fibonacci")
|
||||||
|
|
||||||
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
|
## Use NO_CACHE option
|
||||||
ASSERTION_FAILED("fibonacci not in cache")
|
|
||||||
endif()
|
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")
|
||||||
|
|||||||
1
test/unit/cache/CMakeLists.txt.in
vendored
1
test/unit/cache/CMakeLists.txt.in
vendored
@@ -14,6 +14,7 @@ CPMAddPackage(
|
|||||||
NAME fibonacci
|
NAME fibonacci
|
||||||
GIT_REPOSITORY https://github.com/TheLartians/Fibonacci.git
|
GIT_REPOSITORY https://github.com/TheLartians/Fibonacci.git
|
||||||
VERSION @FIBONACCI_VERSION@
|
VERSION @FIBONACCI_VERSION@
|
||||||
|
@FIBONACCI_PACKAGE_ARGS@
|
||||||
)
|
)
|
||||||
|
|
||||||
# ---- Create binary ----
|
# ---- Create binary ----
|
||||||
|
|||||||
Reference in New Issue
Block a user