原鏈接:https://www.baidu.com/link?url=zta-qlffdvP_GuX0fUZMRZPaIT8YD8SyYyxtRr8nXu6TSppgL20nHeGFYRW0fT6Zb9Sd11i-VSUY8V2-bVuzpa&wd=&eqid=f4316a7a00002c8d000000025992a738
用途:提供一些列表操作
list(LENGTH <list><output variable>)
list(GET <list> <elementindex> [<element index> ...]
<output variable>)
list(APPEND <list><element> [<element> ...])
list(FIND <list> <value><output variable>)
list(INSERT <list><element_index> <element> [<element> ...])
list(REMOVE_ITEM <list> <value>[<value> ...])
list(REMOVE_AT <list><index> [<index> ...])
list(REMOVE_DUPLICATES <list>)
list(REVERSE <list>)
list(SORT <list>)
LENGTH返回列表的長度
GET返回列表中指定下標的元素
APPEND添加新元素到列表中
INSERT 將新元素插入到列表中指定的位置
REMOVE_ITEM從列表中刪除某個元素
REMOVE_AT從列表中刪除指定下標的元素
REMOVE_DUPLICATES從列表中刪除重復的元素
REVERSE 將列表的內容實地反轉,改變的是列表本身,而不是其副本
SORT 將列表按字母順序實地排序,改變的是列表本身,而不是其副本
列表的子命令APPEND, INSERT, REMOVE_AT, REMOVE_ITEM,REMOVE_DUPLICATES, REVERSE以及SORT在當前的CMake變量域創建一些新值。與SET命令類似,即使列表本身是在父域中定義的,LIST命令也只會在當前域創建新的變量值,為了將這些操作的結果向上傳遞,需要通過SET PARENT_SCOPE, SET CACHE INTERNAL或其他值域擴展的方法。
注意:cmake中的列表是以分號隔開的一組字符串。可以使用set命令創建一個列表。例如:set(var a b c d e)創建了一個這樣的列表:a;b;c;d;e。 set(var “a b c d e”)創建了一個字符串或只有一個元素的列表。
當指定索引值時,<element index>為大於或等於0的值。它從列表的開始處索引,0代表列表的第一個元素。如果<element index>為小於或等於-1的值,它從列表的結尾處索引,-1代表列表的最后一個元素。