CMP0118¶
3.20 版新增。
GENERATED
源可在各个目录中使用,而无需手动标记。
在 3.19 及以下的 CMake 版本中,GENERATED
源文件属性类似于其他源文件属性,在每个目录中分别限定了范围。如果在某个目录中生成了源文件,项目必须在另一个目录中手动设置 GENERATED
属性才能使用此文件。
源文件是否生成是源文件的全局属性,内容为全部或全无:源文件要么被生成,要么没有被生成。3.20 及以上版本的 CMake 允许在某个目录中生成的源文件在其他目录中使用,而无需将它们手动标记为 GENERATED
。此外,GENERATED
属性现在只能设置为布尔值,一旦开启就无法关闭。此策略提供了对尚未针对该行为更新的项目的兼容性。
此策略的 OLD
行为是不允许在 GENERATED
属性已开启的目录中使用生成的源文件。此策略的 NEW
行为是不禁止在其他目录中使用生成的源文件,而无需显式启用这些目录的 GENERATED
属性。
3.30 版新增: 策略 CMP0163
此外还使 GENERATED
源文件属性对其他目录中的 get_property()
和 get_source_file_property()
调用可见。
此策略在 CMake 3.20 版中引入。可以通过 cmake_policy()
或 cmake_minimum_required()
进行设置。如果没有设置,CMake 会警告不要将 GENERATED
属性设置为非布尔值,并使用 OLD
行为。
注意
策略的 OLD
行为在 定义 中弃用了 ,
在未来的 CMake 版本中可能会删除。