生成

此源文件是否作为编译或 CMake 流程的一部分而生成。

在版本 3.20 中进行了更改:在某个目录中打开 GENERATED 源文件属性可以允许关联的源文件跨目录使用,而无需为其他目录范围手动设置该属性。此外,现在它可能仅设置为布尔值,并且一旦打开便不能关闭。请参见策略 CMP0118

在版本 3.30 中进行了更改:源文件是否生成是源的全局非此即彼属性。因此, GENERATED 源文件属性现在在所有目录中可见。请参见策略 CMP0163

告知内部 CMake 引擎源文件由外部进程生成,例如另一个构建步骤或 CMake 本身的执行。此信息随后用于将文件免于任何存在或有效性检查。

任何文件

将标记为 GENERATED 属性。

当一个已生成的文件作为 OUTPUT 命令的 add_custom_command() 显式列出为在同一目录范围内的任何目标的源文件(这通常表示同一个 CMakeLists.txt 文件),CMake 将自动创建一个依赖项以确保在构建该目标之前生成文件。

Makefile 生成器 将在 make clean 期间移除 GENERATED 文件。

生成的源可能会在一些 IDE 工具中隐藏,而另外一些工具中则可能显示。对于由 CMake 的 AUTOMOCAUTORCCAUTOUIC 生成的特殊情况的源,AUTOGEN_SOURCE_GROUPAUTOMOC_SOURCE_GROUPAUTORCC_SOURCE_GROUPAUTOUIC_SOURCE_GROUP 目标属性可能会影响生成的源如何分组在项目的文件夹中。