我构建并安装了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
(。