我有一个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文件做任何修改?
当 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 软件包,则单独使用)。)