几乎每一个编译工具,都支持设置变量,来传递编译信息,控制编译流。变量也基本分内置环境变量和用户自定义变量。
1、自定义变量
主要有隐式定义和显式定义两种。
隐式定义的一个例子是PROJECT
指令,它会隐式的定义< projectname >_BINARY_DIR
和< projectname >_SOURCE_DIR
两个变量;显式定义使用SET
指令构建自定义变量,比如:SET(HELLO_SRC main.c)
就可以通过${HELLO_SRC}
来引用这个自定义变量了,它等价于HELLO_SRC=main.c。
2、变量引用方式
-
使用
${}
进行变量的引用;在IF
等语句中,是直接使用变量名而不通过${}
取值。 -
获取系统的环境变量:
$ENV{NAME}
-
设置环境变量:
SET(ENV{变量名} 值)
。
比如MESSAGE(STATUS "HOME dir: $ENV{HOME}")