我对 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
我想做的是:使用以下命令打包 Debian 包fakeroot make package
,当软件包安装时sudo dpkg -i MyProgramPackageName
,将其安装到/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
?因为关于这个变量的文档描述确实很有吸引力,而且它确实是我想要的,但我就是无法让它工作。
请建议我。
Peter
我没有找到任何文档来支持这一点,但我确实找到了一些错误报告和电子邮件档案,它们似乎表明您应该执行以下操作:
set(CPACK_SET_DESTDIR true)
set(CPACK_INSTALL_PREFIX /opt/MySuperAwesomePrefix-v.1.2.3)
如果未设置 CPACK_INSTALL_PREFIX,则默认为 CMAKE_INSTALL_PREFIX。现在的相对路径install(... DESTINATION dest)
最终将在包文件中作为 CPACK_INSTALL_PREFIX/dest 。当我尝试生成 deb 文件时,这有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)