(四)CMake变量的引用规则

0 阅读1分钟

一、CMake变量的两种访问方式

1.直接使用变量名(不展开)

  • 当CMake需要知道变量是否存在
  • 当CMake需要变量标识符本身
  • 某些特定的命令和上下文

2.使用${VAR}(展开值)

  • 需要变量的实际内容

  • 字符串拼接

  • 需要值的地方使用

二、foreach(IN LISTS) 的特殊语法

image.png

为什么不能写成 ${MY_LIST}:

image.png 一个对比: image.png

三、if() 判断中的变量使用

CMake 中 if() 的语法规则:

image.png 为什么不能写成 if(${MY_VAR}):

image.png 布尔值转换规则:

image.png

四、上下文决定语法

我们定义了一个变量MY_VAR,在使用它时是直接MY_VAR,还是需要用 ¥{my_var} 来获取它的值,需要看实际的上下文情况。

如果是if判断,while循环等情况,都需要直接使用MY_VAR。

如果是message直接打印,或者是参数传递了形参,需要转换为实际的实参,则需要用${MY_VAR}。

image.png

七、记忆口诀

image.png

核心原则:当语法需要变量标识符时用名字,需要变量值时用 ${}