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 作为前缀。
手动设置 CPACK_SET_DESTDIR 可能有帮助(或者仅仅是必需的),如果某些安装规则使用了绝对的 DESTINATION(参见 CMake install() 命令)。但是,从 CPack/CMake 2.8.3 版本开始,RPM 和 DEB 安装程序会尝试自动处理 DESTDIR,因此用户很少需要手动设置它。