mirror of
https://github.com/reactos/CMake.git
synced 2024-12-02 08:37:09 +00:00
729db484ef
Teach the ArgumentExpansion test to expect flattened lists as has always been the case in the CMake language. Now that the test should pass enable the failure regex even when CMAKE_STRICT is not on. Replace the reference to the old ArgumentExpansion test behavior in the workaround comment in cmMakefile::TryCompile with a full inline explanation.
61 lines
2.0 KiB
CMake
61 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
|
|
project(ArgumentExpansion)
|
|
|
|
function (argument_tester expected expected_len)
|
|
list(LENGTH ARGN argn_len)
|
|
list(LENGTH ${expected} expected_received_len)
|
|
|
|
if (NOT ${expected_received_len} EQUAL ${expected_len})
|
|
message(STATUS "Unexpected: Expanding expected values isn't working")
|
|
endif (NOT ${expected_received_len} EQUAL ${expected_len})
|
|
|
|
if (${argn_len} EQUAL ${expected_len})
|
|
set(i 0)
|
|
while (i LESS ${argn_len})
|
|
list(GET ARGN ${i} argn_value)
|
|
list(GET ${expected} ${i} expected_value)
|
|
|
|
if (NOT "${argn_value}" STREQUAL "${expected_value}")
|
|
message(STATUS "Unexpected: Argument ${i} doesn't match")
|
|
message(STATUS " Expected: ${expected_value}")
|
|
message(STATUS " Received: ${argn_value}")
|
|
endif ()
|
|
|
|
math(EXPR i "${i} + 1")
|
|
endwhile (i LESS ${argn_len})
|
|
else (${argn_len} EQUAL ${expected_len})
|
|
message(STATUS "Unexpected: Lengths of arguments don't match")
|
|
message(STATUS " Expected: ${expected_len}")
|
|
message(STATUS " Received: ${argn_len}")
|
|
endif (${argn_len} EQUAL ${expected_len})
|
|
endfunction (argument_tester expected)
|
|
|
|
set(empty_test)
|
|
message(STATUS "Test: Empty arguments")
|
|
argument_tester(empty_test 0 ${empty_test})
|
|
|
|
set(single_arg_test
|
|
"single arg")
|
|
message(STATUS "Test: Single argument")
|
|
argument_tester(single_arg_test 1 ${single_arg_test})
|
|
|
|
set(multiple_arg_test
|
|
"first arg"
|
|
"second arg")
|
|
message(STATUS "Test: Multiple arguments")
|
|
argument_tester(multiple_arg_test 2 ${multiple_arg_test})
|
|
|
|
set(nested_list_arg_test
|
|
"${multiple_arg_test}"
|
|
"first arg"
|
|
"second arg")
|
|
message(STATUS "Test: Nested list argument flattens")
|
|
argument_tester(nested_list_arg_test 4 ${nested_list_arg_test})
|
|
|
|
set(semicolon_arg_test
|
|
"pre\;post")
|
|
set(semicolon_arg_test_flat "pre;post")
|
|
message(STATUS "Test: Semicolon argument flattens")
|
|
argument_tester(semicolon_arg_test_flat 2 ${semicolon_arg_test})
|