CMP0090¶
在 3.15 版本加入.
export(PACKAGE) 默认情况下不填充包注册表。
在 CMake 3.14 及以下版本中,export(PACKAGE) 命令默认填充用户包注册表,用户需要设置 CMAKE_EXPORT_NO_PACKAGE_REGISTRY 来禁用它,例如在自动化构建和打包环境中。由于用户包注册表存储在构建树之外,因此默认情况下不应启用此副作用。因此 CMake 3.15 及更高版本更喜欢 export(PACKAGE) 不执行任何操作,除非显式 CMAKE_EXPORT_PACKAGE_REGISTRY 变量设置为启用它。此策略提供与尚未更新的项目的兼容性。
除非启用 CMAKE_EXPORT_NO_PACKAGE_REGISTRY,否则此策略的 OLD 行为用于:command:export(PACKAGE) 命令填充用户包注册表。 NEW 行为是为了 export(PACKAGE)() 命令不执行任何操作,除非 CMAKE_EXPORT_PACKAGE_REGISTRY 已启用。
此策略是在 CMake 版本 3.15 中引入的。使用 cmake_policy() 命令将其显式设置为 OLD 或 NEW。与大多数政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时*不*发出警告。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。