当使用 CMake / CPack 构建包时,有CPACK_DEBIAN_PACKAGE_DEPENDS
并CPACK_RPM_PACKAGE_REQUIRES
保存生成的 .deb / .rpm 应该依赖的包列表。
区别是有帮助的,因为包命名方案因发行版而异。(例如:使用.deb
s 的发行版将 libicu 的主要版本添加到包名称中 - 即libicu60
- 而使用.rpm
s 的发行版则不这样做。)
但是,-distros之间.rpm
也存在差异,尤其是在 SuSE 和 RedHat 之间。例如,SuSE 命名 Boost 包libboost_system1.56.0
等,而 RedHat 使用boost-system
.
有没有一种意识形态的方式
- 以与发行版无关的方式维护
CPACK_RPM_PACKAGE_REQUIRES
,或 - 检测特定的分发/包命名模式?
我知道如何找出分发“困难的方式”(解析uname
、签入文件/etc
等),然后将各个包名称“硬编码”到CPACK_RPM_PACKAGE_REQUIRES
; 我想知道 CMake / CPack 是否提供了一种更惯用的方法来解决这个问题。