CMP0163¶
3.30 版本新增。
GENERATED
源文件属性现在在所有目录中都可见。
在 CMake 3.29 及更早版本中,GENERATED
源文件属性,像其他源文件属性一样,在每个目录中是独立作用域的。尽管策略 CMP0118
允许在一个目录中标记为 GENERATED
的源文件在其他目录中使用而无需再次手动标记为 GENERATED
,但 GENERATED
属性仍然不可被 get_property()
和 get_source_file_property()
调用访问。
源文件是否生成是一个全局属性,非此即彼:一个源文件要么是生成的,要么不是。CMake 3.30 及更高版本倾向于将 GENERATED
源文件属性视为全局作用域。一旦在一个目录中设置,它就立即可被其他目录中的 get_property()
和 get_source_file_property()
调用访问。此策略为尚未更新以适应此行为的项目提供兼容性。
此策略的 OLD
行为是 GENERATED
源文件属性仅在其设置的目录中可见。此策略的 NEW
行为是允许 GENERATED
源文件属性在任何目录中设置后,在所有目录中都可见。此外,此策略的 NEW
行为意味着策略 CMP0118
的 NEW
行为:GENERATED
属性只能设置为布尔值,并且一旦打开就不能关闭。
此策略在 CMake 3.30 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 不会警告,并使用 OLD
行为。
注意
策略的 OLD
行为根据定义已弃用
,并可能在未来版本的 CMake 中移除。