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

条件判断学习到这里。

相关推荐
听风34743 分钟前
Arch Linux 软件安装完全指南
linux·运维·archlinux·pacman
网络安全零基础教程2 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
扛枪的书生2 小时前
TigerVNC 安装流程
linux
Mortalbreeze2 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
躺柒2 小时前
读半导体简史08大型机
linux·服务器·c语言·数据库·unix·ibm
井川廊咏2 小时前
【总集篇】Linux | 如何创建一个 home 目录在 /data 磁盘的 sudo 用户(补档)
linux·运维·服务器
Kina_C3 小时前
LVS负载均衡的十二种核心调度算法
linux·运维·算法·负载均衡·lvs
shencz20003 小时前
用bc脚本求解大质数
linux
AOwhisky3 小时前
Linux(CentOS)系统管理入门笔记(第十五期)——文件系统与存储管理(上篇):设备识别、挂载与文件查找
linux·运维·笔记·centos·文件系统
寒水馨3 小时前
Linux下载、安装 Bun v1.3.14(附安装包bun-linux-x64.zip)
linux·javascript·typescript·node.js·bun·运行时·包管理器