Boost logo

Boost-Build :

Subject: Re: [Boost-build] feature, properties, variants, and all the rest
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2017-08-07 14:42:02


On 08/07/2017 10:27 AM, Chambers, Matthew via Boost-build wrote:
>
> On 8/5/2017 9:56 PM, Stefan Seefeld via Boost-build wrote:
>>> The need for propagated features stems from the fact that
>>> Boost.Build allows multiple build configurations to be
>>> handled simultaneously. They're basically used for anything
>>> that would be global in other build systems, such as the toolset,
>>> debug vs. release, static vs. shared, etc.
>> Ah, right. Well, right now I don't support multiple build
>> configurations. (You can clone artefacts and apply different sets of
>> features to them all you want, such as a static and a shared version of
>> a library. But still, both are represented as two distinct objects, and
>> I haven't encountered the need to propagate features across the entire
>> graph.)
>
> lib a : a.cpp ;
>
> exe b : b.cpp : <library>a.cpp/<link>shared ;
> exe c : c.cpp : <library>a.cpp/<link>static ;
>
> This very basic example illustrates the need for propagated features.
> I don't want to define (clone?) a twice.

faber supports that, too, but doesn't require the "propagate" feature
attribute for that:
https://github.com/stefanseefeld/faber/blob/develop/examples/implicit_rules/fabscript#L21-L23
(And I'm not sure that this is in fact an example of "propagate" at all,
not even in b2.)

        Stefan

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

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