cmake_minimum_required(VERSION 3.20)
set(on "OFF")
if(on)
message("ON")
else()
message("OFF")
endif()
if(${on})
message("ON")
else()
message("OFF")
endif()
$ cmake -P test.cmake
ON
OFF
如果常量为 1、ON、YES、TRUE、Y 或非零数字(包括浮点数),则为 True。如果常量为 0、OFF、NO、FALSE、N、IGNORE、NOTFOUND、空字符串或以 -NOTFOUND 为后缀,则为 False。命名布尔常量不区分大小写。如果参数不是这些特定常量之一,则将其视为变量或字符串(参见下文的变量扩展),并采用以下两种形式之一。
我对这个问题的理解是
对于预定义常量 ON,它相当于 on。
对于if(on)
,on
将被解析为预定义常量ON
。
对于if(${on})
,${on}
将被解析为“OFF”,相当于OFF
。
不知道我的理解是否正确。
什么是on
?