CMake 中的list操作

Cmake 中定义了一系列的数组操作,使用方法如下


  1. list(INSERT <list> <element_index> <element> [<element> ...])
  2. list(REMOVE_ITEM <list> <value> [<value> ...])
  3. list(REMOVE_AT <list> <index> [<index> ...])
  4. list(REMOVE_DUPLICATES <list>)
  5. list(REVERSE <list>)
  6. list(SORT <list>)
  7. list(APPEND <list> <element> [<element> ...])
  8. list(GET <list> <element index> [<element index> ...] <output variable>)
  9. list(LENGTH <list> <output variable>)

INSERT

cmake_minimum_required(VERSION 2.8)
set(mylist aaa)
list(APPEND mylist bbb ccc)
MESSAGE("${mylist}")
list(LENGTH mylist ll)
#insert with index
list(INSERT mylist 2 xxx)
MESSAGE("${mylist}")

---------output----------

aaa;bbb;ccc
aaa;bbb;xxx;ccc


REMOVE_ITEM

cmake_minimum_required(VERSION 2.8)
set(mylist aaa)
list(APPEND mylist bbb ccc)
MESSAGE("${mylist}")
list(LENGTH mylist ll)
#remove item from list
list(REMOVE_ITEM mylist ccc)
MESSAGE("${mylist}")

---------output----------
aaa;bbb;ccc
aaa;bbb

REMOVE_AT

cmake_minimum_required(VERSION 2.8)
set(mylist aaa)
list(APPEND mylist bbb ccc)
MESSAGE("${mylist}")
list(LENGTH mylist ll)
#remove item from list
list(REMOVE_ITEM mylist 2)
MESSAGE("${mylist}")

---------output----------
aaa;bbb;ccc
aaa;bbb

REMOVE_DUPLICATES

cmake_minimum_required(VERSION 2.8)
set(mylist aaa)
list(APPEND mylist bbb ccc ccc bbb aaa)
MESSAGE("${mylist}")
list(LENGTH mylist ll)
#REMOVE_DUPLICATES
list(REMOVE_DUPLICATES mylist)
MESSAGE("${mylist}")

---------output----------
aaa;bbb;ccc;ccc;bbb;aaa
aaa;bbb;ccc

REVERSE

cmake_minimum_required(VERSION 2.8)
set(mylist aaa bbb ccc)
MESSAGE("mylist: ${mylist}")
list(REVERSE mylist)
MESSAGE("mylist: ${mylist}")

---------output----------
mylist: aaa;bbb;ccc
mylist: ccc;bbb;aaa

SORT

cmake_minimum_required(VERSION 2.8)
set(mylist xxx yyy zzz aaa bbb ccc)
MESSAGE("mylist: ${mylist}")
list(SORT mylist)
MESSAGE("mylist: ${mylist}")

---------output----------
mylist: xxx;yyy;zzz;aaa;bbb;ccc
mylist: aaa;bbb;ccc;xxx;yyy;zzz

APPEND

cmake_minimum_required(VERSION 2.8)
set(mylist aaa bbb ccc)
MESSAGE("mylist: ${mylist}")
list(APPEND mylist xxx yyy zzz)
MESSAGE("mylist: ${mylist}")
set(mylist2 111 222 333)
MESSAGE("mylist2: ${mylist2}")
list(APPEND mylist ${mylist2})
MESSAGE("mylist: ${mylist}")

---------output----------
mylist: aaa;bbb;ccc
mylist: aaa;bbb;ccc;xxx;yyy;zzz
mylist2: 111;222;333
mylist: aaa;bbb;ccc;xxx;yyy;zzz;111;222;333

这里的append有两种,第二种直接append数组的值,同样有效。

GET

cmake_minimum_required(VERSION 2.8)
set(mylist xxx yyy zzz aaa bbb ccc)
MESSAGE("mylist: ${mylist}")
list(GET mylist 0 1 2 sublist)
MESSAGE("mylist: ${sublist}")

---------output----------
mylist: xxx;yyy;zzz;aaa;bbb;ccc
mylist: xxx;yyy;zzz

LENGTH

cmake_minimum_required(VERSION 2.8)
set(mylist xxx yyy zzz aaa bbb ccc)
MESSAGE("mylist: ${mylist}")
list(LENGTH mylist ll)
MESSAGE("mylist: ${ll}")

---------output----------
mylist: xxx;yyy;zzz;aaa;bbb;ccc
mylist: 6
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值