CMP0193¶
在 4.1 版本中新增。
GNUInstallDirs
对于安装前缀 /
,缓存 CMAKE_INSTALL_*
时带有前导 usr/
。
当 CMAKE_INSTALL_PREFIX
为 /
时,CMAKE_INSTALL_<dir>
变量(对于 <dir>
等于 BINDIR
、SBINDIR
、LIBEXECDIR
、SHAREDSTATEDIR
、INCLUDEDIR
、OLDINCLUDEDIR
、DATAROOTDIR
和 LIBDIR
)会像 特殊情况 中所记录的那样,被预置一个前导 usr/
。在 CMake 4.0 及以下版本中,这些 CMAKE_INSTALL_<dir>
变量在缓存时没有前导 usr/
,它会在覆盖其缓存条目的普通变量中预置。CMake 4.1 及以上版本倾向于在缓存 CMAKE_INSTALL_<dir>
时带有其前导 usr/
。因此,GNUInstallDirs_get_absolute_install_dir()
命令不再更改相对输入变量参数 <input-var>
。此策略为尚未更新以适应新行为的项目提供兼容性。
此策略的 OLD
行为是缓存 CMAKE_INSTALL_<dir>
变量时不带前导 usr/
。此策略的 NEW
行为是缓存 CMAKE_INSTALL_<dir>
变量时带前导 usr/
。
此策略在 CMake 4.1 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 不会警告,并使用 OLD
行为。
注意
策略的 OLD
行为根据定义已弃用
,并可能在未来版本的 CMake 中移除。