[CMake] HOWTO declare component inter-dependencies in multi-component packages

stefan stefan at seefeld.name
Thu Oct 3 17:08:09 EDT 2019


On 2019-10-03 4:59 p.m., Kyle Edwards wrote:
> On Thu, 2019-10-03 at 16:42 -0400, stefan wrote:
>> My project is already using this style:
>>    set(CPACK_COMPONENTS_ALL runtime development mstool)
>>
>> i.e. all components are already defined. All that's missing is the
>> declaration of their (inter-)dependencies.
>> Are you suggesting I should *not* use CPACK_COMPONENTS_ALL, but
>> instead call `cpack_add_component()` instead ?
>> Thanks,
> That's how I prefer to do it. Alternatively, you could set
> CPACK_COMPONENT_<compName>_DEPENDS directly (that's all that
> cpack_add_component() is doing.)

Yes, that is exactly what I'm trying to do, but it doesn't seem to have 
any effect. That is, `dpkg --info ...` doesn't list the additional 
dependency, and correspondingly, running `apt-get install ...` on the 
component package file will install the package without first installing 
the prerequisite component.

Consider this declaration:

   set(CPACK_COMPONENTS_ALL runtime development mstool)

If I now write

   set(CPACK_COMPONENT_DEVELOPMENT_DEPENDS runtime)

I will see no effect. That is, the "development" package still does not 
depend on the "runtime" package.

So I try this:

   set(CPACK_COMPONENT_DEVELOPMENT_DEPENDS RUNTIME)

in case capitalization is required. Now the "runtime" component seems to 
get packaged twice (as per the cmake logs), but still no correct 
dependencies.

Is it time for a bug report ?

Stefan

--

       ...ich hab' noch einen Koffer in Berlin...
     

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20191003/8f4b2372/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.png
Type: image/png
Size: 1478 bytes
Desc: not available
URL: <https://cmake.org/pipermail/cmake/attachments/20191003/8f4b2372/attachment.png>


More information about the CMake mailing list