features with 'propagate' attribute

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

features with 'propagate' attribute

Boost - Build mailing list
Hello,

how is the 'propagate' feature attribute handled. If I were to guess, I
would assume that all 'propagate' features of a target are merged into
all dependent targets feature sets. Is that right ?


So, a target's feature set is composed of:


* default features

* features provided on the command line

* features explicitly added to target definitions

* features propagated from 'source' targets

* features from 'usage requirements' from 'source' targets


Is that correct ? What are the merge rules in this, i.e. in what order
may features from the above sources take precedence in the accumulated
feature set ?


Thanks,

        Stefan


--

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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: features with 'propagate' attribute

Boost - Build mailing list
AMDG

On 03/30/2017 11:58 AM, Stefan Seefeld via Boost-build wrote:
> Hello,
>
> how is the 'propagate' feature attribute handled. If I were to guess, I
> would assume that all 'propagate' features of a target are merged into
> all dependent targets feature sets. Is that right ?
>

Yes.

>
> So, a target's feature set is composed of:
>
>
> * default features
>
> * features provided on the command line
>
> * features explicitly added to target definitions
>
> * features propagated from 'source' targets
>
> * features from 'usage requirements' from 'source' targets
>
>
> Is that correct ? What are the merge rules in this, i.e. in what order
> may features from the above sources take precedence in the accumulated
> feature set ?
>

Summary:
requirements > command line/propagated > default-build > feature default

Details:
1) Free features from multiple sources are merged.  Since
   all the features are in the result, precedence is irrelevant.
2) Features in the target requirements always take priority.
3) Non-free features on the command line and propagated
   features are equivalent.  The command line is used
   to create the build-request for the targets named on
   the command line.  If target A depends on B, then the
   build-request for B will be the propagated features
   on A.
4) The default-build of a target is applied when the
   feature is not present in the build-request.
5) The default value of a non-free feature has the lowest
   priority.
6) Usage-requirements must be free features.  See (1)

In Christ,
Steven Watanabe

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Loading...