当前位置: 首页 > article >正文

cmake foreach 条件判断

格式

foreach(<loop_var> <items>)
  <commands>
endforeach()

其中<items>是由空格或空白分隔的项目列表。foreach和匹配的endforeach之间的所有命令都被记录下来而不被调用。一旦计算完endforeach,将为<items>中的每个项目调用一次记录的命令列表。在每次迭代开始时,变量<loop_var>将被设置为当前项的值。<loop_var>的作用域被限制为循环作用域,不需要像C语言一样单独定义,endforeach结束变量<loop_var>的作用域。

数字迭代循环

foreach(<loop_var> RANGE <stop>)
foreach(<loop_var> RANGE <start> <stop> [<step>])

LISTS查找

foreach(<loop_var> IN [LISTS [<lists>]] [ITEMS [<items>]])

一般的编程语言只可以查找一个list,cmake 可以查找成多个list合并查找,如:

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()

结果:

-- X=0
-- X=1
-- X=2
-- X=3
-- X=4 5
-- X=6
-- X=7
-- X=8

多组LISTS同时查找

list(APPEND English one two three four)
list(APPEND 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()

结果:

list(APPEND English one two three four)
list(APPEND 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()

可以看到与上面的LISTS查找方式不一样的时ZIP时多个LIST同时查找,而LISTS时3按顺序查找。


http://www.kler.cn/a/508428.html

相关文章:

  • 在Linux上如何让ollama在GPU上运行模型
  • 2024CVPR《HomoFormer》
  • PHP智慧小区物业管理小程序
  • 微信原生小程序自定义封装组件(以导航navbar为例)
  • 【Flink系列】6. Flink中的时间和窗口
  • Golang Gin系列-3:Gin Framework的项目结构
  • SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理
  • 商用车电子电气零部件电磁兼容条件和试验(8)—辐射抗干扰(ALSE)和便携式发射机抗干扰(HPT)
  • (01)STM32—GPIO
  • Django MySQL数据库配置完全指南
  • pytorch张量复制方法介绍
  • 自动化之Ansible
  • AUTOSAR通信篇 - PDU和收发数据
  • PMML和XML-标记语言异同
  • %.*s——C语言中printf 函数中的一种格式化输出方式
  • 介绍UDP协议
  • PCL 点云按时间进行渲染赋色【2025最新版】
  • 图像处理|闭运算
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 快慢指针:链表问题的利器
  • unity免费资源2025-1-17
  • Java合并多个List集合的方法
  • AUTOSAR从入门到精通专栏总目录
  • Linux手写FrameBuffer任意引脚驱动spi屏幕
  • Django多线程爬虫:突破数据抓取瓶颈
  • sparkRDD教程之必会的题目