| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- include(${CMAKE_CURRENT_LIST_DIR}/test_utils.cmake)
- # example from the documentation
- # OPTIONAL is a keyword and therefore terminates the definition of
- # the multi-value DEFINITION before even a single value has been added
- set(options OPTIONAL FAST)
- set(oneValueArgs DESTINATION RENAME)
- set(multiValueArgs TARGETS CONFIGURATIONS)
- cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}"
- "${multiValueArgs}"
- TARGETS foo DESTINATION OPTIONAL)
- TEST(MY_INSTALL_DESTINATION UNDEFINED)
- TEST(MY_INSTALL_OPTIONAL TRUE)
- macro(foo)
- set(_options )
- set(_oneValueArgs FOO)
- set(_multiValueArgs )
- cmake_parse_arguments(_FOO2 "${_options}"
- "${_oneValueArgs}"
- "${_multiValueArgs}"
- "${ARGN}")
- cmake_parse_arguments(_FOO1 "${_options}"
- "${_oneValueArgs}"
- "${_multiValueArgs}"
- ${ARGN})
- endmacro()
- foo(FOO foo)
- TEST(_FOO1_FOO foo)
- TEST(_FOO2_FOO foo)
- # Make sure a list is split
- foo(FOO "foo;bar")
- TEST(_FOO1_FOO foo)
- TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
- TEST(_FOO2_FOO foo)
- TEST(_FOO2_UNPARSED_ARGUMENTS "bar")
- # Do not split if argn is quoted
- foo(FOO "foo\\;bar")
- TEST(_FOO1_FOO foo)
- TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
- TEST(_FOO2_FOO foo;bar)
- TEST(_FOO2_UNPARSED_ARGUMENTS "UNDEFINED")
- # Do not split if argn is quoted
- foo(FOO "foo\\\\;bar")
- TEST(_FOO1_FOO foo)
- TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
- TEST(_FOO2_FOO foo;bar)
- TEST(_FOO2_UNPARSED_ARGUMENTS "UNDEFINED")
|