cmake命令之foreach
一、介绍
遍历容器的所有元素,它有四种形式
- 遍历list所有元素
- 从零开始到目标结果,stop不可为负数,默认步长为1
- 存在起始位置和截至位置的跳动,左右都是闭区间,步长可指定,默认为1
- 多集合的并集
二、遍历list所有元素
语法
foreach(<loop_var> <items>)<command>
endeach()
举个例子
set(LIST_SRC a.cpp b.cpp c.cpp)
foreach(item ${LIST_SRC})message(STATUS "item is ${item}")
endforeach()
打印
三、从零开始到目标结果(包括这个目标结果),stop不可为负数,默认步长为1,
语法
foreach(<loop_var> RANGE <start> <stop> [<step>])
举个例子
foreach(i RANGE 5)message(STATUS "i = ${i}")
endforeach()
打印0-5
四、存在起始位置和截至位置的跳动,左右都是闭区间,步长可指定,默认为1
语法
foreach(<loop_var> RANGE <start> <stop> [<step>])
举个例子
foreach(j RANGE 3 6)message("j = ${j}")
endforeach()foreach(k RANGE 3 6 2)message("k = ${k}")
endforeach()
打印
五、多集合的并集
- LISTS可以认为是一个有名的集合,入set(A a b c)
- ITEMS可以认为是一个匿名的集合,如a b c
语法如下.
foreach(<loop_var> IN [LISTS [<lists>]] [ITEMS [<items>]])
举个例子
set(A 0;1)
set(B 2 3)
set(C "4 5")
set(D 6;7 8)
set(E "")foreach(X IN LISTS A B C D E)message(STATUS "X=${X}")
endforeach()foreach(i IN ITEMS A B C D E)message("i = ${i}")
endforeach()
打印
六、一个特殊的用法ZIP_LISTS
foreach(<loop_var>... IN ZIP_LISTS <lists>)
实例,遍历两个list
set(English one two three four)set(Bahasa satu dua tiga)foreach(num IN ZIP_LISTS English Bahasa)message(STATUS "num_0=${num_0}, num_1=${num_1}")
endforeach()foreach(en ba IN ZIP_LISTS English Bahasa)message(STATUS "en=${en}, ba=${ba}")
endforeach()
打印
参考:
foreach — CMake 3.22.2 Documentation
cmake foreach - faithlocus - 博客园
cmake命令之foreach相关推荐
- 【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )
文章目录 一.Android NDK 构建脚本 二.CMake 构建脚本示例 三.CMake 命令手册 1.CMake 脚本命令 2.CMake 工程命令 该系列博客的应用场景是 Android St ...
- CMake命令大全——CMake构建系统的骨架
转自:http://www.cnblogs.com/coderfenghc/archive/2012/06/16/CMake_ch_01.html#2996205) CMD#1: add_custom ...
- 【Cmake】执行cmake命令时报错:No XSLT processor found
一.问题描述 在ubuntu中,在生成Doc(文档)中,执行cmake命令时报错:No XSLT processor found 二.原因查找 google该错误信息,原因是确实ubuntu中没有安装 ...
- 【CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )
文章目录 一.Android Studio 中使用 CMake 编译单个 C++ 源文件 二.cmake_minimum_required 命令设置最小 CMake 版本 三.project 命令设置 ...
- linux下cmake命令行,深入理解CMake(1): CMake命令行参数
初衷 CMake能用来编写跨平台(cross-platform)的构建规则,通过这些规则来调用各个平台的编译器.链接器,生成各个目标(静态库,静态库,或者可执行). 我第一个接触的大型C++项目是Op ...
- Qt CMake命令参考
Qt CMake命令参考 CMake命令参考 Qt5 :: Core Qt5 :: DBus Qt5 :: Linguist工具 Qt5 :: RemoteObjects Qt5 :: Widgets ...
- cmake命令的python库的位置参数-DTORCH_PATH
https://blog.csdn.net/qq_35590091/article/details/104557020 我主要用的是这文章里对于cmake命令的python库的位置参数-DTORCH_ ...
- CMake命令之add_custom_comand 和 add_custom_target
一.背景 在很多时候,需要在cmake中创建一些目标,如clean.copy等等,这就需要通add_custom_target来指定.而add_custom_command则可以用来完成对add_cu ...
- android studio 使用CMAKE,在terminal终端里敲cmake命令
原文地址 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要 ...
最新文章
- Java排序算法:冒泡排序
- python矩阵处理库_用于处理非常大的矩阵的Python库
- 预印本平台(arXiv.org) — 免费论文库,开心学习吧~~~
- 关于Java基础需要注意的点
- 53、shell常用快捷方式
- weblogic命令行操作
- esp8266 rtos 开发环境 ubuntu_Ubuntu快速搭建C++开发环境(VS Code编辑器)
- dvd在线租赁问题 matlab,DVD在线租赁问题.doc
- mysql md 123456_MySQL修炼之路四
- 外星人进化_外星人真的比人类强大吗?科学家给出几种猜想,你认同吗?
- cf12E Start of the season(构造,,,)
- Chrome谷歌浏览器启用flash插件
- Mybatis collection 递归查询并自动装填所有子节点(多参数查询传入参数方法)
- 图相关论文阅读与总结
- (转)男人的梦想之野性篇 什么是真正的越野车
- java安装_Java开发人员应该知道的7种新工具
- java 坑爹的黑店,大土地神系统
- 回车符,换行符的区别
- 图书条形码跟ISBN号互相转换的类(续)
- 【亲测】PHP进销存源码 ERP多仓库管理系统 网络版手机端+小程序版进销存 二次开发
热门文章
- MVCC能保证不产生幻读吗
- txt转shp,省标格式txt格式转shp批量转换
- Java 中的泛型是什么,它有什么作用?(十五)
- msec是毫秒; usec是微秒
- 选择性注意中的“salience map”的作用是什么?
- 利用MySQL实现一个类似美团外卖的外卖订单的数据库管理系统
- tyvj 2075 借教室 题解
- 聊城市普通话水平测试软件音频,聊城市普通话水平测试培训-聊城市教师教育网.ppt...
- VS2022配置OpenCV 4.3.0报错解决办法
- 网络信息安全运营方法论 (上)