mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Merge topic 'doc-list-non-existent'
b573a732dcTests: add tests to check claims in the documentationb151db01f9Help: mention non-existent case for list(PREPEND)b3a249c2cbHelp: clarify range for list(INSERT), mention nonexistent / empty caseb6fdcb3df0Help: clarify description of list(INSERT)e55f473ea9Help: clarify that list(APPEND) on a non-existent list creates it Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6824
This commit is contained in:
@@ -128,7 +128,9 @@ Modification
|
||||
|
||||
list(APPEND <list> [<element> ...])
|
||||
|
||||
Appends elements to the list.
|
||||
Appends elements to the list. If no variable named ``<list>`` exists in the
|
||||
current scope its value is treated as empty and the elements are appended to
|
||||
that empty list.
|
||||
|
||||
.. _FILTER:
|
||||
|
||||
@@ -150,7 +152,12 @@ For more information on regular expressions look under
|
||||
|
||||
list(INSERT <list> <element_index> <element> [<element> ...])
|
||||
|
||||
Inserts elements to the list to the specified location.
|
||||
Inserts elements to the list to the specified index. It is an
|
||||
error to specify an out-of-range index. Valid indexes are 0 to `N`
|
||||
where `N` is the length of the list, inclusive. An empty list
|
||||
has length 0. If no variable named ``<list>`` exists in the
|
||||
current scope its value is treated as empty and the elements are
|
||||
inserted in that empty list.
|
||||
|
||||
.. _POP_BACK:
|
||||
|
||||
@@ -186,7 +193,9 @@ to the given variables and then remove the first `N` values from
|
||||
|
||||
.. versionadded:: 3.15
|
||||
|
||||
Insert elements to the 0th position in the list.
|
||||
Insert elements to the 0th position in the list. If no variable named
|
||||
``<list>`` exists in the current scope its value is treated as empty and
|
||||
the elements are prepended to that empty list.
|
||||
|
||||
.. _REMOVE_ITEM:
|
||||
|
||||
|
||||
45
Tests/RunCMake/list/LIST-nonexistent.cmake
Normal file
45
Tests/RunCMake/list/LIST-nonexistent.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
# Various list operations should treat non-existent variables as empty
|
||||
# - APPEND
|
||||
# - PREPEND
|
||||
# - INSERT (only valid index is 0)
|
||||
set(nex_l0 "")
|
||||
list(APPEND nex_l0 a)
|
||||
list(APPEND nex_l0 b)
|
||||
if(NOT nex_l0 STREQUAL "a;b")
|
||||
message(FATAL_ERROR "a;b expected, got ${nex_l0}")
|
||||
endif()
|
||||
|
||||
unset(nex_l1)
|
||||
list(APPEND nex_l1 c)
|
||||
list(APPEND nex_l1 d)
|
||||
if(NOT nex_l1 STREQUAL "c;d")
|
||||
message(FATAL_ERROR "c;d expected, got ${nex_l1}")
|
||||
endif()
|
||||
|
||||
set(nex_l2 "")
|
||||
list(PREPEND nex_l2 E)
|
||||
list(PREPEND nex_l2 f)
|
||||
if(NOT nex_l2 STREQUAL "f;E")
|
||||
message(FATAL_ERROR "f;E expected, got ${nex_l2}")
|
||||
endif()
|
||||
|
||||
unset(nex_l3)
|
||||
list(PREPEND nex_l3 hi)
|
||||
list(PREPEND nex_l3 G)
|
||||
if(NOT nex_l3 STREQUAL "G;hi")
|
||||
message(FATAL_ERROR "G;hi expected, got ${nex_l3}")
|
||||
endif()
|
||||
|
||||
set(nex_l4 "")
|
||||
list(INSERT nex_l4 0 j)
|
||||
list(INSERT nex_l4 0 kl)
|
||||
if(NOT nex_l4 STREQUAL "kl;j")
|
||||
message(FATAL_ERROR "kl;j expected, got ${nex_l4}")
|
||||
endif()
|
||||
|
||||
unset(nex_l5)
|
||||
list(INSERT nex_l5 0 M)
|
||||
list(INSERT nex_l5 0 noP)
|
||||
if(NOT nex_l5 STREQUAL "noP;M")
|
||||
message(FATAL_ERROR "noP;M expected, got ${nex_l5}")
|
||||
endif()
|
||||
@@ -116,3 +116,6 @@ run_cmake(POP_FRONT-NoArgs)
|
||||
# Successful tests
|
||||
run_cmake(POP_BACK)
|
||||
run_cmake(POP_FRONT)
|
||||
|
||||
# Nonexistent variables treated as empty
|
||||
run_cmake(LIST-nonexistent)
|
||||
|
||||
Reference in New Issue
Block a user