[CMake] Support for multiple components in cpack (reloaded)

Kishore kitts.mailinglists at gmail.com
Mon Aug 23 10:51:56 EDT 2010


On Monday 23 Aug 2010 7:57:28 pm Clinton Stimpson wrote:
> On 08/22/2010 10:47 AM, Eric Noulard wrote:
> > 2010/8/22 Eric Noulard<eric.noulard at gmail.com>:
> >> 2010/8/21 Clinton Stimpson<clinton at elemtech.com>:
> >>> I wondered if one would typically use groups if their project contained
> >>> sub projects, and the sub projects had different conventions for the
> >>> component names.
> >> 
> >> I do not usually work with sub-project and I must admit I don't even
> >> know how CPack behave for project with sub-project(s). I'll try in
> >> order to observe the current behavior.
> > 
> > Ok now I did some testing regarding CPack and subproject(s).
> > 
> >  From my testing and my thinking the conclusion is
> > 
> > CPack is not aware **AT ALL** of subprojects :-(
> > 
> > It's even worse, since CPack is not meant to be included more than once
> > in the same tree.
> > In fact you already know that because you are the reporter of this:
> > http://public.kitware.com/Bug/view.php?id=10751
> > 
> > A related discussion on the ML:
> > http://www.cmake.org/pipermail/cmake/2010-August/038648.html
> > 
> > So I would say, unless I misunderstood something,
> > that **currently** you CAN NOT use "subproject" to do any grouping with
> > CPack. If any subproject do include(CPack) while your toplevel project
> > does it as well, you'll get unexpected behavior.
> > The most probable consequence is that is you call "make package" in the
> > toplevel project you'll get a source package instead of a binary package
> > :-)
> > 
> > What you CAN ALREADY do is to use your toplevel project to build a
> > package which contains all subprojects. You can even use component in
> > the
> > subproject(s) it will
> > work as expected.
> > 
> > If we want to be able to include(CPack) several times, many thing
> > should be changed
> > and we should specify the expected behavior very precisely, I do not
> > think it's as easy
> > as it may seems. Definitely on my workplan now :-(
> 
> Yeah, there is that issue, but I'm thinking of something a bit
> different... let me demonstrate with a fictitious example with subprojects:
> 
> project A, has sub-projects B, C.
> project B has install() commands with components "Development" and
> "Binaries"
> project C has install() commands with components "Dev" "Runtime"
> And suppose project A has its own naming of components.
> 
> now, suppose project A wants to make a component based package, but
> wants B:Development and C:Dev merged together as "Devel," and B:Binaries
> and C:Runtime merged to "Runtime."
> 
> Is there anything in cpack to allow for that?  Do we need something like
> that?
> I've been getting along fine for a while and I just edit the cmake files
> of my subprojects.
> I don't know about others though.

The way i see this... Project A's "Devel" component is made to depend on "Dev" 
and "Development". And make "Dev" and "Development" hidden. IIRC this is 
possible already. No?

What i would be worried about is if two sub projects have the same named 
component not related to each other.
-- 
Cheers!
Kishore


More information about the CMake mailing list