生成

此源文件是否作为构建或 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 目标属性可能会影响生成源文件在项目文件列表中分组的位置。