Boost logo

Boost-Build :

Subject: Re: [Boost-build] how to add a dependency to a dependency
From: Stjepan Rajko (stjepan.rajko_at_[hidden])
Date: 2009-01-21 23:57:33


On Wed, Jan 21, 2009 at 8:48 PM, Steven Watanabe <watanabesj_at_[hidden]> wrote:
> AMDG
>
> Stjepan Rajko wrote:
>>
>> Hello,
>>
>> I need to add a dependency to a library dependency. I have a GUI
>> library that can support multiple underlying window managers, and in
>> some cases, it is the task of the user of the GUI library to specify
>> how to link/include the window manager files.
>>
>> For example, I might have a scenario like this:
>>
>> B: a window manager library
>> G: a GUI library (can work with B, but knows nothing about the
>> location of "B" include files on the system)
>> Gplus: a library that is based on G
>> E: an executable that wants to use Gplus with the B window manager
>>
>> The goal is to allow E to specify that G/Gplus should use B:
>>
>> exe E : ... : <library>Gplus<use_window_manager>B ;
>>
>> The desired effect is that B would get added to the requirements /
>> usage-requirements of G.
>>
>> I've tried a bunch of things to get this or similar to work but keep
>> getting nowhere. Can someone tell me how to do this?
>>
>> I can provide more information if it's not clear what I'm trying to
>> do, or if you're interested in what I tried unsuccessfully.
>>
>
> Is <use_window_manager> a propagated feature?
>
> If it is then this should work
> exe E : ... : <library>Gplus <use_window_manager>B ;
>

Thanks for the suggestion. I tried making use_window_manager a
propagated feature, but as far as I could see it also needed to be a
free feature (because you should be able to supply any window manager
target, as long as it provides the right include files - in my case
glut-compatible includes). But trying that caused a boost.build error
message to the effect of "can't have free propagated features".

When that didn't work, I tried to manually "push down" the
<use_window_manager> value (given as B in the example) from Gplus to
G, and then have G add the value it gets as <use_window_manager> as a
<library> requirement / usage-requirement. Unfortunately I couldn't
figure out exactly how to do that.

Best,

Stjepan

> In Christ,
> Steven Watanabe
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost-build
>


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk