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,因此使用者很少需要設定它。