生成的

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

在 3.20 版本发生变更: GENERATED 源文件属性现在在所有目录中都可见。

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

任何文件是

  • 通过执行以下命令创建:command:add_custom_commandfile(GENERATE)

  • 列为 add_custom_command 或 add_custom_target 命令的副产品之一,或

  • 由 CMake AUTOGEN 操作创建,例如 AUTOMOCAUTORCCAUTOUIC

将标有 GENERATED 属性。

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

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

生成的源代码可能隐藏在某些 IDE 工具中,而在其他工具中可能会显示。对于 CMake 的 AUTOMOCAUTORCCAUTOUIC 功能生成的源的特殊情况, AUTOGEN_SOURCE_GROUPAUTOMOC_SOURCE_GROUP、 :prop_gbl:` AUTORCC_SOURCE_GROUP` 和 AUTOUIC_SOURCE_GROUP 目标属性可能会影响生成的源在项目文件列表中的分组位置。

备注

从 CMake 3.20 开始,可以从任何目录范围设置和检索 GENERATED 源文件属性。这是一个全有或全无的属性。如果它被设置为“真”,它也不能再被删除或取消设置。策略:policy:CMP0118 被引入以允许在一段时间内支持 OLD 行为。