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

问题描述 投票:0回答:1

我有一个CMake项目,现在我想从这个项目中生成debian包(*.deb)。在网上有很多关于如何在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

那么是否可以用命令来生成debian包呢?cpack 不对CMake文件做任何修改?

linux cmake deb cpack
1个回答
0
投票

CMakeLists.txt 包括 CPack 模块,它产生 CPackConfig.cmake 的目录下。这个配置文件是CPack的默认文件,但你可以通过以下方式覆盖它 --config 选项。

该文件由一系列的 set() 命令来设置各种 CPACK_* 变量. 要生成一个包(你问题中的DEB),你应该 "手动 "编写配置文件,并为CPack设置重要的变量,以及为 DEB 生成器(即 CPACK_DEBIAN_*).

一般来说,这个配置(其中的变量)描述了什么项目和它的组件要包含在包中,定义了一些元数据,等等。理论上讲,你可以将所有的定义通过 -D 选项以 cpack(1). 在实践中,IMHO,会更容易写出的 CPackConfig.cmake %)

有了这个配置文件,这个命令就应该到你想要的东西。

$ cpack -G DEB

(或只是... cpack 如果你的配置中只描述了要构建的 Debian 软件包,则单独使用)。)

© www.soinside.com 2019 - 2024. All rights reserved.