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 返回list的長度
GET 返回list中index的element到value中
APPEND 添加新element到list中
FIND 返回list中element的index,沒有找到返回-1
INSERT 將新element插入到list中index的位置
REMOVE_ITEM 從list中刪除某個element
REMOVE_AT 從list中刪除指定index的element
REMOVE_DUPLICATES 從list中刪除重復的element
REVERSE 將list的內容反轉
SORT 將list按字母順序排序
LIST與SET命令類似,即使列表本身是在父域中定義的,LIST命令也只會在當前域創建新的變量,要想將這些操作的結果向上傳遞,需要通過SET PARENT_SCOPE, SET CACHE INTERNAL或運用其他值域擴展的方法。
注意:cmake中的list是以分號隔開的一組字符串。可以使用set命令創建一個列表。例如:set(var a b c d e)創建了一個這樣的列表:a;b;c;d;e。 set(var “a b c d e”)創建了一個字符串或只有一個元素的列表。
當指定index時,如果<element index>為大於或等於0的值,它從列表的開始處索引,0代表列表的第一個元素。如果<element index>為小於或等於-1的值,它從列表的結尾處索引,-1代表列表的最后一個元素。