CPACK_SET_DESTDIR

用于在打包时使 CPack 使用 DESTDIR 机制的布尔开关。

DESTDIR 代表目标目录(DESTination DIRectory)。Makefile 用户通常使用它来将软件安装到非默认位置。它是一个基本的重定位机制,不应在 Windows 上使用(参见 CMAKE_INSTALL_PREFIX 文档)。它通常像这样调用:

make DESTDIR=/home/john install

这将使用安装前缀安装相关软件,例如 /usr/local,并在前面加上 DESTDIR 的值,最终得到 /home/john/usr/local。在准备软件包时,CPack 首先使用相同的 DESTDIR 机制将要打包的项安装到(构建树本地的)目录中。然而,如果设置了 CPACK_SET_DESTDIR,那么 CPack 将在进行本地安装之前设置 DESTDIR。最显著的区别是,如果没有 CPACK_SET_DESTDIR,CPack 使用 CPACK_PACKAGING_INSTALL_PREFIX 作为前缀;而如果设置了 CPACK_SET_DESTDIR,CPack 将使用 CMAKE_INSTALL_PREFIX 作为前缀。

如果某些安装规则使用绝对 DESTINATION(参见 CMake install() 命令),手动设置 CPACK_SET_DESTDIR 可能会有所帮助(或仅仅是必要的)。然而,从 CPack/CMake 2.8.3 开始,RPM 和 DEB 安装程序会尝试自动处理 DESTDIR,因此用户很少需要手动设置它。