CMake 中的list操作

来源:互联网 发布:卡片战斗先导者g爱知 编辑:程序博客网 时间:2024/06/01 08:21

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 indexlist(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 listlist(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 listlist(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_DUPLICATESlist(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
0 0
原创粉丝点击