从 cpack 组件中删除后缀

Remove suffix from cpack component

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 后缀,以便我的用户看不到差异?

我找到了解决方案。我们需要设置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