|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-12-18 16:28:34
Vladimir Prus <ghost_at_[hidden]> writes:
> On Sunday 17 December 2006 01:04, David Abrahams wrote:
>> Roland Schwarz <roland.schwarz_at_[hidden]> writes:
>>
>> > The test library specifies in its requirements:
>> >
>> > <toolset>msvc:<asynch-exceptions>on
>> >
>> > Now when I try to put this also into the usage-requirements, and try to
>> > build something that uses the test library Boost.Build complains with:
>> >
>> > error: usage-requirements <toolset>msvc:<asynch-exceptions>on have
>> > non-free properties <asynch-exceptions>on
>>
>> That is rather baffling. I can't see why usage-requirements should be
>> limited to free properties.
>
> Because if you allow non-free usage requirements, then in:
>
> exe a : a.cpp lib1 lib2 ;
>
> usage requirements brought by lib1 might well affect some
> conditional requirements in lib2, and in order to figure out the
> final properties for all targets you potentially need to take
> multiple passed though all targets, re-computing usage requirements
> and propagating all the way up and down. I never had time or
> motivation to spell down such an algorithm.
As a first cut, you could just turn it into an error if you find
conditional requirements that depend on usage requirements. That
would allow the user to explicitly request the build properties that
come from the usage requirement from the command-line, thereby driving
the conditions from the top down.
-- 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