GENERATED¶
该源文件是否作为构建或 CMake 过程的一部分生成。
在版本 3.20 中更改: 在一个目录中启用 GENERATED 源文件属性,可以让关联的源文件跨目录使用,而无需为其他目录作用域手动设置该属性。此外,它现在只能设置为布尔值,一旦设置为 on,就不能再关闭。请参阅策略 CMP0118。
在版本 3.30 中更改: 源文件是否生成是一个全有或全无的全局属性。因此,GENERATED 源文件属性现在在所有目录中可见。请参阅策略 CMP0163。
告知内部 CMake 引擎,该源文件是由外部过程生成的,例如另一个构建步骤,或 CMake 本身的执行。然后,此信息用于免除文件进行任何存在性或有效性检查。
任何文件
由类似
add_custom_command()的命令执行在构建期间生成add_custom_command()或add_custom_target()命令的BYPRODUCTS列出的,或
将被标记为 GENERATED 属性。
当 add_custom_command() 命令的 OUTPUT 作为生成文件,并且在同一目录作用域(通常指同一个 CMakeLists.txt 文件)的任何目标源文件中明确列出时,CMake 将自动创建一个依赖关系,以确保在构建该目标之前生成文件。
Makefile Generators 将在 make clean 时删除 GENERATED 文件。
在某些 IDE 工具中,生成的源文件可能会被隐藏,而在其他工具中则可能显示。对于 CMake 的 AUTOMOC、AUTORCC 或 AUTOUIC 功能生成的源文件这一特殊情况,AUTOGEN_SOURCE_GROUP、AUTOMOC_SOURCE_GROUP、AUTORCC_SOURCE_GROUP 和 AUTOUIC_SOURCE_GROUP 目标属性可能会影响在项目的源文件列表中如何对生成的源文件进行分组。