【CMake学习】list使用

添加链接描述

一、介绍

cmake的list命令即对列表的一系列操作,cmake中的列表变量是用分号;分隔的一组字符串,创建列表可以使用set命令(参考set命令),例如:set (var a b c d)创建了一个列表 “a;b;c;d”,而set (var “a b c d”)则是只创建了一个变量"a c c d"。list命令的具体格式根据子命令不同会有所区别。

下面是list提供的命令

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>)

我们可以看到,list命令的格式如下

list (subcommand [args…])
subcommand为具体的列表操作子命令,例如读取、查找、修改、排序等。list为待操作的列表变量,[args…]为对列表变量操作需要使用的参数表,不同的子命令对应的参数也不一致。

ENGTH          返回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按字母顺序排序

二、实例

列表的读取

2.1 LENGTH:子命令LENGTH用于读取列表长度

list (LENGTH <list> <output variable>)```

output variable为新创建的变量,用于存储列表的长度。

cmake_minimum_required (VERSION 3.12.2)
project (list_cmd_test)
set (list_test a b c d) # 创建列表变量"a;b;c;d"
list (LENGTH list_test length)
message (">>> LENGTH: ${length}")```

2.2 GET:子命令GET用于读取列表中指定索引的的元素,可以指定多个索引。

list (GET <list> <element index> [<element index> ...] <output variable>)

element index为列表元素的索引,从0开始编号,索引0的元素为列表中的第一个元素;索引也可以是负数,-1表示列表的最后一个元素,-2表示列表倒数第二个元素,以此类推。注意:当索引(不管是正还是负)超过列表的长度,运行会报错(list index: XX out of range)。

output variable为新创建的变量,存储指定索引元素的返回结果,也是一个列表。

2.3、列表的查找

FIND:子命令FIND用于查找列表是否存在指定的元素。

list (FIND )
  如果列表中存在,那么返回在列表中的索引,如果未找到则返回-1。

CMakeLists.txt

cmake_minimum_required (VERSION 3.12.2)
project (list_cmd_test)
set (list_test a b c d) # 创建列表变量"a;b;c;d"
list (FIND list_test d list_index)
message (">>> FIND 'd': ${list_index}")
list (FIND list_test e list_index)
message (">>> FIND 'e': ${list_index}")```

参考:

list — CMake 3.22.2 Documentation
Cmake命令之list介绍 - 简书

————————————————
版权声明:本文为CSDN博主「物随心转」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_31608641/article/details/123101692

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值