CMake生成器表达式
生成器表达式不在配置阶段计算,而是推迟到生成阶段,当项目文件被写入时再进行计算。它可以用来执行条件逻辑,输出字符串,提供有关构建的各个方面的信息。
生成器表达式不在配置阶段计算,而是推迟到生成阶段,当项目文件被写入时再进行计算。它可以用来执行条件逻辑,输出字符串,提供有关构建的各个方面的信息。
属性几乎影响着构建过程的所有方面,它附属于一个特定的实体,无论是目录、目标、源文件、测试用例、缓存变量甚至是整个构建过程本身。属性并不像变量那样持有一个独立的值,而是为它所连接的实体提供特定的信息。CMake用于相关属性和变量的名称通常遵循相同的模式:变量名称=CMAKE_属性名称。
CMake的函数和宏与C语言的函数和宏特性相似。函数引入了一个新的作用域,函数参数是函数体内可访问的变量。宏主体在宏调用的地方展开,宏参数只是做简单的字符串替换。一个CMake函数或宏的定义如下:
CMake提供两个命令add_subdirectory和include,将另一个文件或目录中的内容包含到构建中,允许构建逻辑分布在目录层次中,而不是所有东西都在最顶层定义。优点如下:
if命令语法如下:
if(expression1)
# commands ...
elseif(expression2)
# commands ...
else()
# commands ...
endif()if和elseif命令中的表达式可以有多种不同的形式。
最基本的表达式是一个常数: