如何使用CPack命令创建Debian软件包(不是从CMake的文件中创建)?

时间:2020-06-01 10:38:41

标签: linux cmake deb cpack

我已经建立并安装了CMake项目。 现在,我想从中生成debian软件包(* .deb)。在Internet上有许多说明,说明如何在CMake的文件中添加一些内容来创建debian软件包,但是我构建的项目并不属于我,因此我不应该修改其源代码。 我发现命令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软件包而无需更改CMake文件吗?

1 个答案:

答案 0 :(得分:0)

CMakeLists.txt包含CPack模块时,它将在顶层构建目录中生成CPackConfig.cmake。此配置文件是CPack的默认配置文件,但是您可以使用--config选项覆盖它。

文件由一堆set()命令组成,用于设置各种CPACK_* variables。要生成一个程序包(您的问题中的DEB),您应该“手动”编写配置文件,并为CPack以及DEB生成器(即CPACK_DEBIAN_*)设置一些重要变量。

通常,此配置(其中的变量)描述了要封装的项目及其组件,定义了一些元数据,等等...从理论上讲,您可以传递所有定义通过-D的{​​{1}}选项。实际上,恕我直言,写cpack(1)%)

具有该配置文件后,此命令应符合您的要求:

CPackConfig.cmake

(或者如果配置仅描述要构建的Debian软件包,则仅$ cpack -G DEB 。)

相关问题