CMP0172

添加于 3.31 版本。

CPack WIX Generator 中,默认情况下,CPack 模块启用了按机器安装。

CPack WIX GeneratorCPACK_WIX_INSTALL_SCOPE 选项中控制生成 Windows Installer 安装包的范围。如果 CPACK_WIX_VERSION 设置为 4 或更高,则默认范围为 perMachine。但是,当使用 WIX 3 时,默认范围为 NONE,并且 CPack 不会在安装包规范中设置任何 InstallScope。因此安装程序需要管理员权限,并且只能安装到全系统的 ProgramFiles 目录中,但是只有当前用户可以创建开始目录项并进行卸载注册。

在 CMake 3.30 及更早版本中,CPack 模块默认情况下不会指定任何 CPACK_WIX_INSTALL_SCOPE 值,因此,在使用 WIX 3 时,CPack 默认不使用任何安装范围。而 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 中移除。