diff options
-rw-r--r-- | Help/command/list.rst | 3 | ||||
-rw-r--r-- | Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake | 5 | ||||
-rw-r--r-- | Tests/RunCMake/list/RunCMakeTest.cmake | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/Help/command/list.rst b/Help/command/list.rst index 6c86c2a..4444af7 100644 --- a/Help/command/list.rst +++ b/Help/command/list.rst @@ -196,7 +196,8 @@ Removes items at given indices from the list. list(REMOVE_DUPLICATES <list>) -Removes duplicated items in the list. +Removes duplicated items in the list. The relative order of items is preserved, +but if duplicates are encountered, only the first instance is preserved. .. _TRANSFORM: diff --git a/Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake b/Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake new file mode 100644 index 0000000..91abbd6 --- /dev/null +++ b/Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake @@ -0,0 +1,5 @@ +set(mylist "b;c;b;a;a;c;b;a;c;b") +list(REMOVE_DUPLICATES mylist) +if(NOT mylist STREQUAL "b;c;a") + message(SEND_ERROR "Expected b;c;a, got ${mylist}") +endif() diff --git a/Tests/RunCMake/list/RunCMakeTest.cmake b/Tests/RunCMake/list/RunCMakeTest.cmake index 59c7ea5..b4a91bc 100644 --- a/Tests/RunCMake/list/RunCMakeTest.cmake +++ b/Tests/RunCMake/list/RunCMakeTest.cmake @@ -24,6 +24,8 @@ run_cmake(SUBLIST-TooManyArguments) run_cmake(REMOVE_AT-EmptyList) +run_cmake(REMOVE_DUPLICATES-PreserveOrder) + run_cmake(FILTER-NotList) run_cmake(REMOVE_AT-NotList) run_cmake(REMOVE_DUPLICATES-NotList) |