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,因此用户很少需要设置它。