CMake/Tests/RunCMake/ExternalProject/CMAKE_CACHE_DEFAULT_ARGS-check.cmake
Max Smolens a3c98cb30e ExternalProject: Fix regression in passing list to CMAKE_CACHE_ARGS
Fix passing a list to the CMAKE_CACHE_ARGS and CMAKE_CACHE_DEFAULT_ARGS
options of ExternalProject_Add.

Following commit v3.7.0-rc1~273^2~1 (prefer list(APPEND) over
string(APPEND) where appropriate, 2016-08-08), the semicolon list
separator after the first list element was missing in the generated
cache.
2016-10-10 14:40:12 -04:00

27 lines
756 B
CMake

set(_cache_file "${RunCMake_TEST_BINARY_DIR}/tmp/FOO-cache-Debug.cmake")
if(NOT EXISTS "${_cache_file}")
set(RunCMake_TEST_FAILED "Initial cache not created")
return()
endif()
file(READ "${_cache_file}" _cache)
if(NOT "${_cache}" MATCHES "set\\(FOO \"BAR\".+\\)") # \(\)
set(RunCMake_TEST_FAILED "Cannot find FOO argument in cache")
return()
endif()
if("${CMAKE_MATCH_0}" MATCHES FORCE)
set(RunCMake_TEST_FAILED "Expected not forced FOO argument")
return()
endif()
if(NOT "${_cache}" MATCHES "set\\(TEST_LIST \"A;B;C\".+\\)")
set(RunCMake_TEST_FAILED "Cannot find TEST_LIST argument in cache")
return()
endif()
if("${CMAKE_MATCH_0}" MATCHES FORCE)
set(RunCMake_TEST_FAILED "Expected not forced TEST_LIST argument")
return()
endif()