CMP0172¶
添加于 3.31 版本。
在 CPack WIX Generator
中,默认情况下,CPack
模块启用了按机器安装。
在 CPack WIX Generator
的 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
值,因此,在使用 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 中移除。