CMake:如何在Linux中将目标/文件打包到多个软件包中?

Ral*_*ang 4 cmake

我正在一个项目上生成大量可执行文件,库和配置,它们需要打包到不同的程序包中进行部署。问题是,包含这些目标/文件不是相互排斥的。一个目标/文件可以属于多个软件包。

我正在使用CMake 2.8.9并尝试使用CPack。我知道安装类型是可行的。但是我的平台是Ubuntu,因此在Archives / Debs上是可以接受的,它们似乎不支持。

对于组件/组/父组,似乎只能将一个目标/文件打包到一个组件/组中。

有什么办法吗?

谢谢

Ral*_*ang 5

好吧,为了方便后来者,我会自己回答这个问题:从 CMake 邮件列表中,我得到了答案:使用 cmake 2.8.9 或更早版本(到目前为止),使用不同的组件设置多次运行 CPack。这有点临时,但可以完成工作。


pad*_*dde 5

为什么不使用组件?如果我做对了,您想从您的项目中生成更多deb。

我是这样实现的:

SET(CPACK_DEB_COMPONENT_INSTALL 1)

INSTALL(TARGETS buildA DESTINATION lib/myproj COMPONENT main)
INSTALL(TARGETS buildB DESTINATION include/myproj COMPONENT dev)
Run Code Online (Sandbox Code Playgroud)

当我打电话时,make package我得到两个带后缀的deb's,main并且dev只包含我用INSTALL()语句指定的内容。