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

条件判断学习到这里。

相关推荐
呆萌小新@渊洁9 分钟前
linux升级系统,重启出现Minimal BASH-like line editingis supported
linux·服务器
ajassi200024 分钟前
开源 C++ QT Widget 开发(十四)多媒体--录音机
linux·c++·qt·开源
zwhSunday1 小时前
Linux驱动开发(2)进一步理解驱动
linux·驱动开发
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 38: 二叉树的锯齿形层序遍历、二叉树最大宽度
java·linux·运维·算法·leetcode·链表·职场和发展
勇闯逆流河1 小时前
【Linux】Linux常用指令合集
linux·运维·服务器
柯一梦2 小时前
Linux权限以及常用热键集合
linux
UNbuff_03 小时前
Linux ip 命令使用指南
linux·网络·tcp/ip
努力努力再努力wz3 小时前
【C++进阶系列】:万字详解红黑树(附模拟实现的源码)
java·linux·运维·c语言·开发语言·c++
会飞的土拨鼠呀3 小时前
Linux负载如何判断服务器的压力
linux·服务器·php
zhongwenhua5203 小时前
tina linux新增mpp程序
linux·mpp·v853