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