6

I'm working on a project which generates quite a few executables, libraries and configs, they need to be packed into different packages for deployment. The problem is, the inclusion of those targets/files is not mutual exclusive. One target/file can belong to multiple packages.

I'm using CMake 2.8.9 and trying CPack. I know it's kind of doable with install types. But my platform is Ubuntu, so on Archives/Debs are acceptable and they don't seem to support that.

With components/groups/parent groups it seems only possible to pack one target/file into one component/group.

Is there any way out of this?

Thanks

4

2 回答 2

6

Why not use components? If I got it right, you want to generate more then one deb from your project.

I am achieving that like this:

SET(CPACK_DEB_COMPONENT_INSTALL 1)

INSTALL(TARGETS buildA DESTINATION lib/myproj COMPONENT main)
INSTALL(TARGETS buildB DESTINATION include/myproj COMPONENT dev)

When I call make package I get two deb's with the suffixes main and dev containing only what I specified with the INSTALL() statements.

于 2012-11-27T14:06:24.743 回答
4

Well, I'll answer it myself for convinience of late comers: from CMake mail list, I got the answer: with cmake 2.8.9 or earlier (so far), run CPack multiple times with different component settings. That's a bit adhoc but does the job.

于 2012-11-12T06:24:20.880 回答