mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-02 20:29:49 -05:00
72e7c45e98
Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
61 lines
1.9 KiB
CMake
61 lines
1.9 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
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 ()
|
|
|
|
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 ()
|
|
else ()
|
|
message(STATUS "Unexpected: Lengths of arguments don't match")
|
|
message(STATUS " Expected: ${expected_len}")
|
|
message(STATUS " Received: ${argn_len}")
|
|
endif ()
|
|
endfunction ()
|
|
|
|
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})
|