Cmake 中list命令总结
获取list的长度
list(LENGTH <list> <output variable>)
# LENGTH: 子命令LENGTH用于读取列表长度
# <list>:当前操作的列表
# <output variable>:新创建的变量,用于存储列表的长度(存储的变量的时字符串变量)
读取例表中指定索引的元素。可以指定多个索引
list(GET <list> <element index> [<element index> <element index> ...] <output variable>)
# LENGTH: 子命令 GET 用于获取例表中指定索引的元素
# <list>:当前操作的列表
# <element index>:指定索引,从 0 开始,-1表示最后一个元素, -2 表示倒数第二个元素
# <output variable>: 保存索引值,时列表
将列表中的元素用连接符(字符串)连接起来成一个字符串
list(JOIN <list> <glue> <output variable>)
# <list>:当前操作的列表
# <glue>:指定的连接符(字符串)
# <output variable>:新创建的变量, 存储返回的字符串
eg:
set(SRC hello world !!!)
list(JOIN SRC xxx SRC_JOIN)
# SRC_JOIN = helloxxxworldxxx!!!
从列表之中查找指定元素
list(FIND <list> <value> <output variable>)
# <list>:当前操作的列表
# <value>:要查找的字符
# <output variable>:新创建的变量, 存储返回的字符串。找到返回对应的索引,找不到返回-1
将元素追加到列表中
list(APPEND <list> [<element> ...])
# <list>:当前操作的列表
# <element>:要插入的字符
在list中的指定位置插入若干元素
list(INSERT <list> <element_index> <element> <element_index> <element> ...)
# <list>:当前操作的列表
# <element_index>:插入字符的位置
# <element>:要插入的字符
在list中的0位置插入若干元素
list(PREPEND <list> <element> <element> <element> ...)
# <list>:当前操作的列表
# <element>:要插入的字符
在list中的最后移除元素
list(POP_BACK <list> <out_var>)
# <list>:当前操作的列表
# <out_var>:保存移除后的元素
在list中的第一个移除元素
list(POP_FRONT <list> <out_var>)
# <list>:当前操作的列表
# <out_var>:保存移除后的元素
将指定元素从列表中移除
list(REMOVE_ITEM <list> <value> ...)
# <list>:当前操作的列表
# <value>:要移除的元素
将指定的索引的元素从列表中移除
list(REMOVE_AT <list> <index> ...)
# <list>:当前操作的列表
# <index>:要移除的元素的索引
移除列表中重复的元素
list(REMOVE_DUPLICATES <list>)
# <list>:当前操作的列表
对列表进行反转
list(REVERSE <list>)
# <list>:当前操作的列表
对列表进行排序
list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>])
- COMPARE:指定排序方法,有如下几种值可选:
STRING:按照字母顺序进行排序, 为默认的排序方法
FILR_BASENAME:如果时一系列路径名,会使用basename进行排序
NATURAL:使用自然数顺序排列 - CASE:指明是否大小写敏感
SENSITIVE:按照大小写敏感方式排序,为默认值
INSENSITIVE:按照大小写不敏感方式排序 - ORDER:指明排序的顺序
ASCEBDING:按照升序排列,为默认值
DESCEBNDING:按照降序排列