[英]How to create debian package with CPack command (not from CMake's files)?
我已经构建并安装了 CMake 项目。 现在我想从中生成 debian package (*.deb) 。 在互联网上有很多说明如何创建 debian package 并在 CMake 的文件中添加一些内容,但是我构建的项目不属于我,所以我不应该修改它的源代码。 我找到了命令cpack
,它也可以生成 deb 包。 不幸的是,当我尝试使用命令时:
cpack -G DEB -C cmake/build/directory -P myPackage.deb -R 1.0.
我懂了:
CPack Error: Please specify build tree of the project that uses CMake using CPACK_INSTALL_CMAKE_PROJECTS, specify CPACK_INSTALL_COMMANDS, CPACK_INSTALL_SCRIPT, or CPACK_INSTALLED_DIRECTORIES.
不幸的是,无法在帮助中的命令中指定选项:
cpack --help
那么是否可以使用命令cpack
生成 debian package 而不对 CMake 文件进行任何更改?
当CMakeLists.txt
包含CPack
模块时,它会在顶部构建目录中生成CPackConfig.cmake
。 此配置文件是 CPack 的默认配置,但您可以--config
选项覆盖它。
该文件由一组set()
命令组成,用于设置各种CPACK_*
变量。 要生成 package(您问题中的 DEB),您应该“手动”编写配置文件并为 CPack 设置重要变量,以及为DEB
生成器设置一些变量(即CPACK_DEBIAN_*
)。
通常,此配置(其中的变量)描述了要包含到包中的项目及其组件,定义一些元数据等等...理论上,您可以通过-D
传递所有定义cpack(1)
的选项。 在实践中,恕我直言,编写CPackConfig.cmake
%) 会更容易
有了那个配置文件,这个命令应该是你想要的:
$ cpack -G DEB
(或者如果您的配置仅描述cpack
package 来构建,则仅 cpack)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.