【发布时间】:2020-09-19 15:23:39
【问题描述】:
我已经构建并安装了 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
那么是否可以使用命令cpack 生成debian 包而不对CMake 文件进行任何更改?
【问题讨论】:
-
"那么是否可以使用命令 cpack 生成 debian 包而不对 CMake 文件进行任何更改?" - 可能,是的,你可以在没有 CMake 项目的情况下使用 CPack。但是您是对的,官方文档中根本没有描述 CPack 命令。其他 CMake 衍生产品(如 CTest)也是如此。
-
"但是我建的项目不属于我,所以我不应该修改它的源。" - 不确定法律问题,但有一些方法可以修改项目的文件,并且仍然能够将它们与项目的 repo 同步。例如。当你想打包项目时,你可以创建一个补丁并应用它。如果你想创建驱动外部项目打包的 CMake 项目,你可以使用ExternalProject_Add 命令来达到这个目的。它的选项
PATCH_COMMAND可用于应用补丁。