Cmake 中定义了一系列的数组操作,使用方法如下
- 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(APPEND <list> <element> [<element> ...])
- list(GET <list> <element index> [<element index> ...] <output variable>)
- 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)