CMake之list
来源:互联网 发布:淘宝网充话费优惠吗 编辑:程序博客网 时间:2024/05/16 18:41
用法
用途:提供一些列表操作
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>)
LENGTH返回列表的长度
GET返回列表中指定下标的元素
APPEND添加新元素到列表中
INSERT 将新元素插入到列表中指定的位置
REMOVE_ITEM从列表中删除某个元素
REMOVE_AT从列表中删除指定下标的元素
REMOVE_DUPLICATES从列表中删除重复的元素
REVERSE 将列表的内容实地反转,改变的是列表本身,而不是其副本
SORT 将列表按字母顺序实地排序,改变的是列表本身,而不是其副本
列表的子命令APPEND, INSERT, REMOVE_AT, REMOVE_ITEM,REMOVE_DUPLICATES, REVERSE以及SORT在当前的CMake变量域创建一些新值。与SET命令类似,即使列表本身是在父域中定义的,LIST命令也只会在当前域创建新的变量值,为了将这些操作的结果向上传递,需要通过SET PARENT_SCOPE, SET CACHE INTERNAL或其他值域扩展的方法。
注意:cmake中的列表是以分号隔开的一组字符串。可以使用set命令创建一个列表。例如:set(var a b c d e)创建了一个这样的列表:a;b;c;d;e。 set(var “a b c d e”)创建了一个字符串或只有一个元素的列表。
当指定索引值时,<element index>为大于或等于0的值。它从列表的开始处索引,0代表列表的第一个元素。如果<element index>为小于或等于-1的值,它从列表的结尾处索引,-1代表列表的最后一个元素。
示例:
# -----------------------------------------------------------------------------
# Determine which port will be built
# -----------------------------------------------------------------------------
#定义ALL_PORTS
set(ALL_PORTS Efl WinCE GTK)
set(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})")
set(PORT GTK)
#在ALL_PORTS中查找 ${PORT} == "GTK",并返回在ALL_PORTS 之中的索引 RET
list(FIND ALL_PORTS ${PORT} RET)
if (${RET} EQUAL -1)
message(FATAL_ERROR "Please choose which WebKit port to build (one of ${ALL_PORTS})")
endif ()
- # list(LENGTH ) LENGTH方法,求长度
- set(mylist a b c d )
- list(LENGTH mylist _length) #获取mylist长度,保存到变量_length中
- message("列表中元素的个数为:${_length}")
- # 稍微综合一点的示例:
- # 生成一个列表a,再将这个列表反序,得到列表b,然后将列表a、b中相应位置的元素合并
- set(strList "a" "b" "c" "d")
- set(reverList ${strList})
- list(REVERSE reverList)
- message("${reverList}")
- foreach(_var ${reverList})
- list(FIND strList ${_var} temp)
- list(GET reverList ${temp} reverItem)
- list(APPEND result "${_var}${reverItem}")
- message("当前元素序号 :${temp}")
- endforeach()
http://blog.csdn.net/fuyajun01/article/details/9036477
http://blog.csdn.net/qyee16/article/details/8985698
- CMake命令之list
- CMake命令之list
- CMake之list
- cmake命令之list
- CMake list
- CMake 中的list操作
- CMake命令之function
- CMake命令之execute_process
- CMake命令之function
- 跨平台之Cmake
- 编译工具之cmake
- CMake之交叉编译
- cmake命令用法整理list命令
- CMake之简单工程实践
- CMake语法之流程控制
- CMake/CPack变量之CPACK_SET_DESTDIR
- CMake/CPack变量之CPACK_PACKAGING_INSTALL_PREFIX
- CMake/CPack变量之CMAKE_INSTALL_PREFIX
- html 空链接 href="#"与href="javascript:void(0)"的区别
- lk中通过操作pmic的寄存器来实现手机重启3次进入关机状态
- 智慧北京开发第一天(下)
- CS设计方案 汇总。
- 安卓日记——volley常用方法介绍
- CMake之list
- Qt核心剖析: moc
- Windows下安装并设置Redis
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程 已经相关原理介绍
- 数据挖掘总结之数据挖掘与机器学习的区别
- python 引用别的文件类
- android 短视频 开发
- 面试:字符串集合 查找包含算法 的素数方案
- ubuntu14.04 环境下 android 智能手机开发平台环境搭建