从 cpack 组件中删除后缀

Posted

技术标签:

【中文标题】从 cpack 组件中删除后缀【英文标题】:Remove suffix from cpack component 【发布时间】:2018-06-15 09:42:16 【问题描述】:

CPack 在此处描述了一个错误,其中单体构建在 DEB 包的 md5sums 文件中包含构建目录路径: https://gitlab.kitware.com/cmake/cmake/issues/16517

由于我在 CMake 3.7 中使用 debian-stretch,因此该错误对我来说仍然存在,因此我正在尝试使用建议的解决方法。

解决方法是像这样启用 CPack 的组件:

set(CPACK_COMPONENTS_ALL component_name)
set(CPACK_DEB_COMPONENT_INSTALL "ON")

但是,问题是当我从mypackage 更改为mypackage-component_name 时,我的包名称发生了变化。

在构建非整体构建时,有没有办法禁止 -component_name 后缀,以便我的用户看不到差异?

【问题讨论】:

【参考方案1】:

我找到了解决方案。我们需要设置CPACK_DEBIAN_<component>_PACKAGE_NAME。在我的情况下<component>=runtime

set(CPACK_COMPONENTS_ALL runtime)
set(CPACK_DEB_COMPONENT_INSTALL "ON")
set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME $CPACK_PACKAGE_NAME)

参考: https://cmake.org/cmake/help/v3.7/module/CPackDeb.html

【讨论】:

以上是关于从 cpack 组件中删除后缀的主要内容,如果未能解决你的问题,请参考以下文章

更改组件 RPM 的 cpack 生成名称

cpack 组件安装不起作用

cmake/cpack 组件 debuginfo rpm 包没有出现

使用 CMake 和 CPack 为一个组件创建包

没有出现cmake / cpack组件的debuginfo rpm包

CPack NSIS 组件未指定