生成

此源文件是否作为构建或 CMake 过程的一部分生成。

版本 3.20 更改:在一个目录中开启 GENERATED 源文件属性后,关联的源文件可以在不同目录中被使用,而无需为其他目录范围手动设置该属性。此外,它现在只能设置为布尔值,并且一旦开启就不能关闭。请参阅策略 CMP0118

版本 3.30 更改:源文件是否生成是源的全局属性,要么全有要么全无。因此,GENERATED 源文件属性现在在所有目录中可见。请参阅策略 CMP0163

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

任何文件如果

都将被标记为 GENERATED 属性。

当作为 add_custom_command() 命令的 OUTPUT 创建的生成文件在同一目录范围(通常意味着相同的 CMakeLists.txt 文件)中显式列为任何目标的源文件时,CMake 将自动创建依赖关系,以确保在构建该目标之前生成该文件。

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

生成的源文件在某些 IDE 工具中可能会被隐藏,而在其他工具中可能会显示。对于 CMake 的 AUTOMOCAUTORCCAUTOUIC 功能生成的源文件的特殊情况,AUTOGEN_SOURCE_GROUPAUTOMOC_SOURCE_GROUPAUTORCC_SOURCE_GROUPAUTOUIC_SOURCE_GROUP 目标属性可能会影响生成的源文件在项目文件列表中的分组位置。