cmake - 使用 CMake 为不同的构建类型构建了两个不同的 Debian 包
问题描述
我有一个具有不同构建类型的小型 CMake 项目debug
和release
. 我还为这个项目提供了一个 Debian 软件包。为我自己的 Debian 存储库构建 Debian 软件包release
并提供它非常完美。
debug
现在,出于调试目的,我还想为 提供另一个 Debian 软件包,并使用不同的软件包名称。比如我的项目叫myproject
,调试包应该是myproject-debug
.
我已经在文件中阅读了有关如何解决此问题的debian/control
文档。我想Replaces: ...
在每个包上使用反之亦然,这样您一次只能安装两个包中的一个。因此,要么 要么myproject
,myproject-debug
但不能同时使用两者,使用完全相同的文件和文件名,但只有二进制文件在myproject-debug
包中有更多的调试信息和调试打印。其他一切都应该相同。相同的文件名,相同的路径等。
现在的问题是我不知道debian/rules
文件应该是什么样子,首先myproject
在一个文件夹中构建包,然后在不同的文件夹中myproject-debug
使用不同的 CMake 选项(-DCMAKE_BUILD_TYPE=debug
)构建包,因此文件名可以并且应该保持不变。
Debian 文档中有这个CMake 教程,但这不符合我的要求。因为在本教程中,所有内容都将构建在一个文件夹中,并且在这个文件夹中包含不同的文件。然后.install
将使用不同的文件将所需的文件复制到每个包中。但是因为我对每个包都有相同的二进制文件名,myproject
所以myproject-debug
本教程并不真正适合我的需要。
我的debian/rules
文件中已经有以下几行:
override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=release
但是我怎样才能使用两种不同的构建类型来运行两个不同的构建呢?
例如,像这样,将其拆分:
override_dh_auto_configure_release:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=release
override_dh_auto_configure_debug:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=debug
并在不同的文件夹中运行,这样我就可以将两个文件夹添加到两个不同的包中。
或者也许还有我无法想象的更好的解决方案?
解决方案
推荐阅读
- php - 注销后,我也可以通过单击浏览器的后退按钮打开页面
- c - 与 nalloc() 一起用于链表的 addfront() 函数是否错误?
- android - 使用相同的uid获取相关数据
- javascript - 选择类别时不显示子类别
- node.js - TypeScript,找不到在内部声明的名称 if else
- python - 熊猫:使用具有多个条件的最后一列值?
- ios - 是否可以在编译时修改 iOS 捆绑包 ID 和图像资产?
- spring-cloud - Netflix Zuul 路由多个 IP 地址
- oracle12c - 元数据列与 Informatica Powercenter 中的源列名称不匹配
- java - Socket messaging between Java Client and Python Server