我已经建立并安装了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文件吗?
答案 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
。)