我一直對CMake-CPack近一週感到沮喪。CMake-CPack軟件包安裝路徑噩夢
壞事是CMake-CPack在線文檔沒有很好地記錄這部分。
谷歌搜索後,我發現這個變量來使用:
CPACK_PACKAGING_PREFIX # NOT documented
CMAKE_INSTALL_PREFIX # Documented, but the behavior seems weird
CPACK_INSTALL_PREFIX # NOT documented
CPACK_PACKAGE_INSTALL_DIRECTORY # Documented, but this variable does NOT work as the online document described
CPACK_PACKAGING_INSTALL_PREFIX # NOT documented
我所試圖做的是:包使用fakeroot make package
,當包由sudo dpkg -i MyProgramPackageName
安裝Debian軟件包,將其安裝到/usr/local
,與一個子目錄MyProgramPackageName
。也就是說,所有文件都應該安裝在/usr/local/MyProgramPackageName-V.1.2.3
之下。
我一直在嘗試(CMake 2.8.3和CMake 2.8.5)來調整這些變量。我嘗試了這麼多組合,但失敗了。
成功的唯一途徑是:
Set(CPACK_PACKAGING_INSTALL_PREFIX /usr/local/MyProgramPackageName-V.1.2.3)
但這個變量甚至沒有記錄在案,並且行爲不能得到保證。如果您對我的問題感到困惑,請告訴我何時使用CPACK_PACKAGE_INSTALL_DIRECTORY
?因爲關於這個變量的文檔描述非常有吸引力,而且它確實是我想要的,但我無法讓它工作。
請告訴我。
彼得
我很困惑。我正在使用CPACK將其打包,以便將應用程序安裝到我想要的位置。在'INSTALL'指令中,我總是將一個或多個文件夾安裝到INSTALL_PREFIX/DIRECTORY的相對路徑中。 –
您只需要安裝目標中的相對路徑 - 它將自動相對於CMAKE_INSTALL_PREFIX進行安裝,無需指定。指定絕對路徑是將所有這些安裝的東西弄糟的便捷方式。 –