CMP0172

在版本 3.31 中添加。

CPack 模块在 CPack WIX 生成器 中默认启用每机器安装。

CPack WIX 生成器CPACK_WIX_INSTALL_SCOPE 选项控制生成的 Windows 安装程序包的范围。当 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 中删除。