CPACK_DEB_PACKAGE_COMPONENT 实际上做了啥?

Posted

技术标签:

【中文标题】CPACK_DEB_PACKAGE_COMPONENT 实际上做了啥?【英文标题】:What does CPACK_DEB_PACKAGE_COMPONENT actually do?CPACK_DEB_PACKAGE_COMPONENT 实际上做了什么? 【发布时间】:2019-04-27 13:09:20 【问题描述】:

我正在尝试使用 CMake 并尝试创建 2 个包:开发和运行时。所以我给install命令设置了一个特定的组件。

install (TARGETS mylib
          LIBRARY
          DESTINATION /usr/lib
          COMPONENT lib)

install (TARGETS mylib
          LIBRARY
          DESTINATION /usr/lib
          COMPONENT dev)

install (DIRECTORY include/
          DESTINATION /usr/include/mylib 
          COMPONENT dev)

set(CPACK_DEB_PACKAGE_COMPONENT ON)

set(CPACK_GENERATOR "DEB")
#component specific configuration

根据the documentation 中的指定,将CPACK_DEB_PACKAGE_COMPONENT 设置为ON 会生成多个包。但是生成了默认的命名单mylib-0.1.1-Linux.deb

但是当我用set(CPACK_DEB_COMPONENT_INSTALL 1) 替换set(CPACK_DEB_PACKAGE_COMPONENT ON) 时,它会为每个定义的组件生成正确的包。

所以我很困惑如果set(CPACK_DEB_COMPONENT_INSTALL 1) 生成多个包,set(CPACK_DEB_PACKAGE_COMPONENT ON) 实际上应该做什么

【问题讨论】:

【参考方案1】:

什么都不做 :) 这是this commit 中修复的文档中的一个错字。

事实上,它完全是 CPackDeb.cmake 模块的内部变量,用户根本不用担心它。

请(总是:)使用latest docs ;)

【讨论】:

以上是关于CPACK_DEB_PACKAGE_COMPONENT 实际上做了啥?的主要内容,如果未能解决你的问题,请参考以下文章