From 258298f59799311ad6a3f261f7e7bebcaf346657 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 27 Feb 2019 11:22:57 -0500 Subject: Help: Clarify ordering of list(REMOVE_DUPLICATES) This also adds a test to enforce the order behavior of list(REMOVE_DUPLICATES). --- Help/command/list.rst | 3 ++- Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake | 5 +++++ Tests/RunCMake/list/RunCMakeTest.cmake | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/list/REMOVE_DUPLICATES-PreserveOrder.cmake 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 ) -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) -- cgit v0.12