mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-22 04:07:49 -05:00
refactor empty argument passing to not require eval
This commit is contained in:
@@ -3,6 +3,18 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||
include(${CPM_PATH}/CPM.cmake)
|
||||
include(${CPM_PATH}/testing.cmake)
|
||||
|
||||
set(input "a;;b;c;;;;def;g;;")
|
||||
cpm_encode_empty_arguments("${input}" encoded)
|
||||
foreach(arg IN LISTS encoded)
|
||||
assert_not_equal("${arg}" "")
|
||||
endforeach()
|
||||
assert_equal("${contains_empty_arg}" "")
|
||||
cpm_decode_empty_arguments("${encoded}" decoded)
|
||||
assert_equal("${decoded}" "${input}")
|
||||
|
||||
# ignore source cache if set
|
||||
set(CPM_SOURCE_CACHE "")
|
||||
|
||||
# Intercept underlying `FetchContent_Declare`
|
||||
function(FetchContent_Declare)
|
||||
set_property(GLOBAL PROPERTY last_FetchContent_Declare_ARGN "${ARGN}")
|
||||
@@ -38,21 +50,6 @@ assert_equal(
|
||||
"fibonacci;EMPTY_OPTION;;COMMAND_WITH_EMPTY_ARG;foo;;bar;GIT_REPOSITORY;https://github.com/cpm-cmake/testpack-fibonacci.git;GIT_TAG;v1.2.3"
|
||||
)
|
||||
|
||||
# Intercept underlying `cpm_add_package_multi_arg`
|
||||
function(cpm_add_package_multi_arg)
|
||||
set_property(GLOBAL PROPERTY last_cpm_add_package_multi_arg_ARGN "${ARGN}")
|
||||
endfunction()
|
||||
|
||||
# TEST: CPM Module file shall store all arguments including empty strings
|
||||
include(${CPM_MODULE_PATH}/Findfibonacci.cmake)
|
||||
get_property(
|
||||
last_cpm_add_package_multi_arg_ARGN GLOBAL PROPERTY last_cpm_add_package_multi_arg_ARGN
|
||||
)
|
||||
assert_equal(
|
||||
"${last_cpm_add_package_multi_arg_ARGN}"
|
||||
"NAME;fibonacci;GIT_REPOSITORY;https://github.com/cpm-cmake/testpack-fibonacci.git;VERSION;1.2.3;EMPTY_OPTION;;COMMAND_WITH_EMPTY_ARG;foo;;bar"
|
||||
)
|
||||
|
||||
# remove generated files
|
||||
file(REMOVE_RECURSE ${CPM_MODULE_PATH})
|
||||
file(REMOVE ${CPM_PACKAGE_LOCK_FILE})
|
||||
|
||||
@@ -2,6 +2,8 @@ include(CMakePackageConfigHelpers)
|
||||
include(${CPM_PATH}/testing.cmake)
|
||||
|
||||
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/source_dir)
|
||||
# clean existing build if it exists
|
||||
file(REMOVE_RECURSE "${TEST_BUILD_DIR}")
|
||||
|
||||
set(TEST_DEPENDENCY_NAME Dependency)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user