CMP0172¶
在版本 3.31 中添加。
CPack
模块默认在 CPack WIX 生成器
中启用每机器安装。
CPack WIX 生成器
的 CPACK_WIX_INSTALL_SCOPE
选项控制生成的 Windows Installer 包的作用域。当 CPACK_WIX_VERSION
设置为 4 或更高版本时,默认作用域为 perMachine
。但是,当使用 WIX 3 时,默认作用域为 NONE
,并且 CPack 不在包规范中设置任何 InstallScope
。生成的安装程序需要管理员权限,并安装到系统范围的 ProgramFiles
目录中,但开始菜单项和卸载程序注册仅为当前用户创建。
CMake 3.30 及更早版本中的 CPack
模块默认不指定任何 CPACK_WIX_INSTALL_SCOPE
值,因此 CPack 默认情况下不使用 WIX 3 的安装作用域。CMake 3.31 及更高版本更倾向于默认将 CPACK_WIX_INSTALL_SCOPE
设置为 perMachine
,以使行为在所有 WIX 版本中保持一致。此策略为尚未更新以期望 perMachine
行为的项目提供兼容性。
此策略的 OLD
行为是默认不设置 CPACK_WIX_INSTALL_SCOPE
。NEW
行为是默认将 CPACK_WIX_INSTALL_SCOPE
设置为 perMachine
。
此策略在 CMake 版本 3.31 中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 默认情况下不发出警告,并使用 OLD
行为。
请参阅 CMAKE_POLICY_WARNING_CMP0172
变量的文档以控制警告。
注意
策略的 OLD
行为按照 定义已弃用
,并且可能在 CMake 的未来版本中删除。