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

CMakeLists.txt语法规则:条件判断中表达式说明四

一.  简介

前面学习了 CMakeLists.txt语法中的 部分常用命令,常量变量,双引号的使用。

前面几篇文章也简单了解了 CMakeLists.txt语法中的条件判断,文章如下:

CMakeLists.txt语法规则:条件判断说明一-CSDN博客

CMakeLists.txt语法规则:条件判断中表达式说明一-CSDN博客

CMakeLists.txt语法规则:条件判断中表达式说明二-CSDN博客
CMakeLists.txt语法规则:条件判断中表达式说明三-CSDN博客

本文继续学习 CMakeLists.txt语法中的条件判断,主要学习 条件判断中的 表达式。

二.  CMakeLists.txt语法规则:条件判断中表达式

1.  DEFINED <variable>表达式

如果给定的变量已经定义,则条件判断为真,否则为假;只要变量已经被设置(定义),if 条件判断就 是真,至于变量的值是真还是假并不重要。
#输出为:false
if(DEFINED yyds)
message(true)
else()
message(false)
endif()#输出为:true
set(yyds "YYDS")
if(DEFINED yyds)
message(true)
else()
message(false)
endif()

2.  <variable|string> LESS <variable|string>表达式

如果左边给定的字符串或变量的值是有效数字并且小于右侧的值,则为真。否则为假。
测试如下:
#输出为:false
if(100 LESS 20)
message(true)
else()
message(false)
endif()#输出为:true
if(20 LESS 100)
message(true)
else()
message(false)
endif()

3.  <variable|string> GREATER <variable|string>表达式

如果左边给定的字符串或变量的值是有效数字并且大于右侧的值,则为真。否则为假。
测试如下:
#输出为:false
if(20 GREATER 100)
message(true)
else()
message(false)
endif()#输出为:true
if(100 GREATER 20)
message(true)
else()
message(false)
endif()

4.  <variable|string> EQUAL <variable|string>表达式

如果左边给定的字符串或变量的值是有效数字并且等于右侧的值,则为真。否则为假。

测试如下:

#输出为:false
if(100 EQUAL 20)
message(true)
else()
message(false)
endif()#输出为:true
if(100 EQUAL 100)
message(true)
else()
message(false)
endif()

三.  elseif 分支

可以使用 elseif 组成多个不同的分支:

set(MY_LIST Hello World China)if(Hello IN_LIST MY_LIST)
message(Hello)
elseif(World IN_LIST MY_LIST)
message(World)
elseif(China IN_LIST MY_LIST)
message(China)
else()
message(false)
endif()

条件判断学习到这里。

http://www.lryc.cn/news/342139.html

相关文章:

  • Hive概述
  • buuctf-misc-33.[BJDCTF2020]藏藏藏1
  • golang 基础知识细节回顾
  • 递归陷阱七例
  • 【3D基础】坐标转换——地理坐标投影到平面
  • 颈椎锻炼方式
  • 测试环境搭建:JDK+Tomcat+Mysql+Redis
  • (delphi11最新学习资料) Object Pascal 学习笔记---第11章第1节(混合引用中的错误)
  • 代码随想录算法训练营第三天 | 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表
  • 如何利用仪表构造InfiniBand流量在数据中心测试中的应用
  • Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点
  • ICode国际青少年编程竞赛- Python-1级训练场-for循环练习
  • Flutter分模块开发、模块可单独启动、包含Provider
  • Element-UI快速入门:构建优雅的Vue.js应用界面
  • Flutter 中的 @immutable:深入解析与最佳实践
  • Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly
  • 人工智能的发展将如何重塑网络安全
  • Prometheus+Grafana多方位监控
  • 使用Docker安装Redis
  • React 之 Effect与事件(event)(八)
  • 网卡的了解
  • SSM框架目录
  • MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速
  • Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。
  • 【DevOps】玩转 Google Cloud:项目切换与 K8s 集群访问
  • 大模型_DISC-MedLLM基于Baichuan-13B-Base医疗健康对话
  • 开源模型 Prometheus 2 能够评估其他语言模型,其效果几乎与 GPT-4 相当
  • 【Java】HOT100 贪心算法
  • 绝地求生:PUBG杜卡迪联名进入倒计时3天!
  • 【论文阅读】Learning Texture Transformer Network for Image Super-Resolution