Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Tests/ArgumentExpansion/CMakeLists.txt
3148 views
1
cmake_minimum_required(VERSION 3.10)
2
3
project(ArgumentExpansion)
4
5
function (argument_tester expected expected_len)
6
list(LENGTH ARGN argn_len)
7
list(LENGTH ${expected} expected_received_len)
8
9
if (NOT ${expected_received_len} EQUAL ${expected_len})
10
message(STATUS "Unexpected: Expanding expected values isn't working")
11
endif ()
12
13
if (${argn_len} EQUAL ${expected_len})
14
set(i 0)
15
while (i LESS ${argn_len})
16
list(GET ARGN ${i} argn_value)
17
list(GET ${expected} ${i} expected_value)
18
19
if (NOT "${argn_value}" STREQUAL "${expected_value}")
20
message(STATUS "Unexpected: Argument ${i} doesn't match")
21
message(STATUS " Expected: ${expected_value}")
22
message(STATUS " Received: ${argn_value}")
23
endif ()
24
25
math(EXPR i "${i} + 1")
26
endwhile ()
27
else ()
28
message(STATUS "Unexpected: Lengths of arguments don't match")
29
message(STATUS " Expected: ${expected_len}")
30
message(STATUS " Received: ${argn_len}")
31
endif ()
32
endfunction ()
33
34
set(empty_test)
35
message(STATUS "Test: Empty arguments")
36
argument_tester(empty_test 0 ${empty_test})
37
38
set(single_arg_test
39
"single arg")
40
message(STATUS "Test: Single argument")
41
argument_tester(single_arg_test 1 ${single_arg_test})
42
43
set(multiple_arg_test
44
"first arg"
45
"second arg")
46
message(STATUS "Test: Multiple arguments")
47
argument_tester(multiple_arg_test 2 ${multiple_arg_test})
48
49
set(nested_list_arg_test
50
"${multiple_arg_test}"
51
"first arg"
52
"second arg")
53
message(STATUS "Test: Nested list argument flattens")
54
argument_tester(nested_list_arg_test 4 ${nested_list_arg_test})
55
56
set(semicolon_arg_test
57
"pre\;post")
58
set(semicolon_arg_test_flat "pre;post")
59
message(STATUS "Test: Semicolon argument flattens")
60
argument_tester(semicolon_arg_test_flat 2 ${semicolon_arg_test})
61
62