|
Boost-Build : |
From: Adder (adder.thief_at_[hidden])
Date: 2007-09-23 10:08:58
Hi there,
I think it would be very useful to be able to specify features that
are propagated, but only to the targets that have declared their
acceptance of (= dependency on) those features.
For example, one might want to build two versions of her application:
ANSI and Unicode; she declares:
feature charset : ansi unicode : symmetric propagated ;
However, she also wants to link with a library that does not care
about "charset" (eg: a Boost library); it is unnecessary to build
that library in two versions (= sub-directories) (charset-ansi and
charset-unicode); thus, the feature should not be propagated to it.
The workarounds that I have come up with so far are unsatisfactory;
they do not scale well when multiple features/projects are involved;
for example:
feature charset : neutral ansi unicode : propagated ;
...
exe Main : Main.cpp /boost//regex/<charset>neutral
I think a better solution might look like this:
feature charset : ansi unicode : propagated-only-to-supportive-targets ;
...
lib Lib1 : Alfa.cpp : <supports-propagation-of>charset ;
lib Lib2 : Beta.cpp ;
exe Main : Main.cpp Lib1 Lib2 : <charset>unicode ;
Can this be implemented (if so, how) ? Or do you know a better
work-around ?
Thank you for your time.
-- Best regards, Adder
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