|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2003-03-05 08:12:53
Vladimir Prus <ghost_at_[hidden]> writes:
> David Abrahams wrote:
>> Update of /cvsroot/boost/boost/tools/build/new
>> Log Message:
>> Add user-interface feature; won't build .exes otherwise!
> [..]
>> +import feature : feature ;
>> +
>> +feature user-interface : console gui wince native auto ;
>
> Dave, this has caused a problem. Consider
>
> lib l : l.cpp ;
> exe a : a.cpp l ;
>
> Both targets are build with default value of 'user-interface': 'console', and
> that's right. However, when building "a", you also have to build "l". Since
> user-interface is not propagated, "l" is build for a second time, this time
> without any value of 'user-interface'.
That doesn't make any sense. "No value" should only be possible for
optional features; since it's not optional, "console" is the default
and should be used.
> I've made the feature propagated. Is this corresponds to the
> semantics?
I think so.
> In general, we probably should have a rule that all non-free non-incidental
> features should be declared propagated. I don't mean to enforce this rule in
> the code, but just a guideline for adding new features.
I think it might be reasonable (as I think we agreed long ago) to have
a high-level feature declaration interface which takes care of things
like that automatically. But maybe we're not ready to do it until we
know more about the kind of features that need to be declared.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
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