Cmake 中list命令总结

news/2024/11/14 21:10:23/

Cmake 中list命令总结

获取list的长度

list(LENGTH <list> <output variable>)
# LENGTH: 子命令LENGTH用于读取列表长度
# <list>:当前操作的列表
# <output variable>:新创建的变量,用于存储列表的长度(存储的变量的时字符串变量)

读取例表中指定索引的元素。可以指定多个索引

list(GET <list> <element index> [<element index> <element index> ...] <output variable>)
# LENGTH: 子命令 GET 用于获取例表中指定索引的元素
# <list>:当前操作的列表
# <element index>:指定索引,从 0 开始,-1表示最后一个元素, -2 表示倒数第二个元素
# <output variable>: 保存索引值,时列表

将列表中的元素用连接符(字符串)连接起来成一个字符串

list(JOIN <list> <glue> <output variable>)
# <list>:当前操作的列表
# <glue>:指定的连接符(字符串)
# <output variable>:新创建的变量, 存储返回的字符串
eg:
set(SRC hello world !!!)
list(JOIN SRC xxx SRC_JOIN)
# SRC_JOIN = helloxxxworldxxx!!!

从列表之中查找指定元素

list(FIND <list> <value> <output variable>)
# <list>:当前操作的列表
# <value>:要查找的字符
# <output variable>:新创建的变量, 存储返回的字符串。找到返回对应的索引,找不到返回-1

将元素追加到列表中

list(APPEND <list> [<element> ...])
# <list>:当前操作的列表
# <element>:要插入的字符

在list中的指定位置插入若干元素

list(INSERT <list> <element_index> <element> <element_index> <element> ...)
# <list>:当前操作的列表
# <element_index>:插入字符的位置
# <element>:要插入的字符

在list中的0位置插入若干元素

list(PREPEND <list> <element> <element> <element> ...)
# <list>:当前操作的列表
# <element>:要插入的字符

在list中的最后移除元素

list(POP_BACK <list> <out_var>)
# <list>:当前操作的列表
# <out_var>:保存移除后的元素

在list中的第一个移除元素

list(POP_FRONT <list> <out_var>)
# <list>:当前操作的列表
# <out_var>:保存移除后的元素

将指定元素从列表中移除

list(REMOVE_ITEM <list> <value> ...)
# <list>:当前操作的列表
# <value>:要移除的元素

将指定的索引的元素从列表中移除

list(REMOVE_AT <list> <index> ...)
# <list>:当前操作的列表
# <index>:要移除的元素的索引

移除列表中重复的元素

list(REMOVE_DUPLICATES <list>)
# <list>:当前操作的列表

对列表进行反转

list(REVERSE <list>)
# <list>:当前操作的列表

对列表进行排序

list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>])
  • COMPARE:指定排序方法,有如下几种值可选:
    STRING:按照字母顺序进行排序, 为默认的排序方法
    FILR_BASENAME:如果时一系列路径名,会使用basename进行排序
    NATURAL:使用自然数顺序排列
  • CASE:指明是否大小写敏感
    SENSITIVE:按照大小写敏感方式排序,为默认值
    INSENSITIVE:按照大小写不敏感方式排序
  • ORDER:指明排序的顺序
    ASCEBDING:按照升序排列,为默认值
    DESCEBNDING:按照降序排列

http://www.ppmy.cn/news/1328412.html

相关文章

【Java程序员面试专栏 专业技能篇】MySQL核心面试指引(三):性能优化策略

关于MySQL部分的核心知识进行一网打尽,包括三部分:基础知识考察、核心机制策略、性能优化策略,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 本篇Blog为第三部分:性能优化策略,子节点表示追问或同级提问 读写分离 分布式数据库的…

html 会跳舞的时间动画特效

下面是是代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta h…

Android ANR 总结

工作之余&#xff0c;对之前学习到的和结合自己项目过程中的遇到的问题经验做一些总结&#xff0c;下面讲一讲Android开发过程中遇到的ANR的问题&#xff0c;做一下整理 一、概述 解决ANR一直是Android 开发者需要掌握的重要技巧&#xff0c;一般从三个方面着手。 开发阶段&a…

Halcon模板图像gen_contour_region_xld/find_shape_model

Halcon模板图像 文章目录 Halcon模板图像1. 从参考图像的特定区域中创建模板2. 使用XLD轮廓创建模板 本文将讲述如何创建合适的模板。可以从参考图像的特定区域中创建&#xff0c;也可以使用XLD轮廓创建合适的模板。接下来将分别介绍这两种方法。 1. 从参考图像的特定区域中创建…

第8章 通信网络安全

文章目录 8.1 信息系统安全概述8.1.1 信息系统的构成和分类8.1.2 信息系统安全1、信息系统中的安全概念2、信息系统安全问题的发展演变3、信息系统的安全结构 8.1.3 信息系统的安全保护等级1.TCSEC&#xff08;可信计算机系统评估准则&#xff09;2. 我国信息安全标准 8.1.4 通…

【iOS】——基于Vision Kit框架实现图片文字识别

文章目录 前言一、文本识别的分类二、实现步骤1.导入Vision Kit框架2.创建请求处理器3.在请求处理器中设置文字识别功能4.将图片添加到请求处理器中5.发起文字识别请求6.处理识别结果 三、运行结果测试1.纯英文环境2.中英文混合环境 前言 根据苹果的官方文档&#xff0c;Visio…

【多线程】认识Thread类及其常用方法

&#x1f4c4;前言&#xff1a; 本文是对以往多线程学习中 Thread类 的介绍&#xff0c;以及对其中的部分细节问题进行总结。 文章目录 一. 线程的 创建和启动&#x1f346;1. 通过继承 Thread 类创建线程&#x1f345;2. 通过实现 Runnable 接口创建线程&#x1f966;3. 其他方…

pyDAL一个python的ORM(终) pyDAL的一些性能优化

一、大批量插入数据 对于 大量数据插入时&#xff0c;虽然pyDAL也手册中有个方法&#xff1a;bulk_insert()&#xff0c;但是手册也说了&#xff0c;虽然方法上是一次可以多条数据&#xff0c;如果后端数据库是关系型数据库&#xff0c;他转换为SQL时它是一条一条的插入的&…