123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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 ()
- 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})
|