我一直对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进行安装,无需指定。指定绝对路径是将所有这些安装的东西弄糟的便捷方式。 –