【CMake】(13)流程控制

条件判断

基本语法

条件判断的基本语法如下:

if(<condition>)
  <commands>
elseif(<condition>)
  <commands>
else()
  <commands>
endif()
  • if(<condition>):检查条件是否满足。如果满足,则执行随后的命令直到遇到elseifelseendif
  • elseif(<condition>):可选。如果前面的ifelseif的条件不满足,将检查这里的条件。可以有多个elseif块。
  • else():可选。如果所有的ifelseif条件都不满足,则执行else块中的命令。
  • endif():结束条件判断块。

在CMake中,基本表达式用于if语句中,以决定是否执行特定的代码块。这些表达式可以是常量、变量或字符串,CMake会根据这些表达式的值来判断条件为真(True)或假(False)。

判定表达式

当表达式的值为以下之一时,条件被认为是真(True):

  • 数值 1:代表真。
  • 字符串 ON:明确表示启用或真。
  • 字符串 YES:同样表示肯定或真。
  • 字符串 TRUE:布尔真值。
  • 字符串 Y:简短的肯定回答,表示真。
  • 非零数值:在大多数编程语言中,非零值通常被解释为真。
  • 非空字符串:任何非空的字符串都被视为真,除了下面将要提到的特定假值字符串外。

当表达式的值为以下之一时,条件被认为是假(False):

  • 数值 0:代表假。
  • 字符串 OFF:明确表示禁用或假。
  • 字符串 NO:表示否定或假。
  • 字符串 FALSE:布尔假值。
  • 字符串 N:简短的否定回答,表示假。
  • 字符串 IGNORE:有时用于特定的设置中,解释为假。
  • 字符串 NOTFOUND:特别在查找库或程序时,如果未找到,这个值表示假。
  • 空字符串:表示没有值,解释为假。
# 示例:变量设置为非零值
set(MY_VAR 42)
if(MY_VAR)
  message("MY_VAR is true")
endif()

# 示例:变量设置为假值字符串
set(MY_VAR "FALSE")
if(NOT MY_VAR)
  message("MY_VAR is false")
endif()

# 示例:使用未定义的变量
if(UNDEFINED_VAR)
  message("This will not be printed")
else()
  message("UNDEFINED_VAR is considered false")
endif()

逻辑判断

逻辑操作符NOTANDOR允许你根据一个或多个条件来执行特定的代码块。这些操作符的行为与大多数编程语言中的逻辑操作符类似,非常直观。

NOT

NOT操作符用于取反一个条件的结果。如果原条件为真(True),则NOT后的结果为假(False)

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游码客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值