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



我构建并安装了CMake项目。 现在我想从中生成 debian 软件包 (*.deb(。在互联网上有很多说明如何创建 debian 软件包,并向 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 软件包而不对 CMake 文件进行任何更改?

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

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

通常,此配置(其中的变量(描述了要包含在包中的项目及其组件,定义一些元数据等等......从理论上讲,您可以将所有通过-D选项定义的内容传递给cpack(1)。在实践中,恕我直言,写CPackConfig.cmake%( 会更容易

有了那个配置文件,这个命令应该是你想要的:

$ cpack -G DEB

(或者如果你的配置只描述了要构建的 Debian 软件包,则单独cpack(。

最新更新