|
Boost-Build : |
From: Konstantin Litvinenko (Konstantin.Litvinenko_at_[hidden])
Date: 2007-04-18 02:24:16
Hello, Vladimir!
You wrote on Tue, 17 Apr 2007 11:49:35 +0400:
??>> Volodya will post his ideas, or a link to them, separately.
VP> Here is my ideas what should be fixed.
VP> Let me first recap the case of a target with a single
VP> alternative. Say:
VP> lib a : a.cpp : <link>static ;
VP> Here, <link>static is "requirement" -- a property
VP> that is guaranteed to be present in build properties for
VP> the target, no matter what.
Yes, it is.
VP> Now consider we want different files to be used for different
VP> toolsets. In the current Boost.Build, we'd use:
VP> lib a : a_msvc.cpp : <toolset>msvc ;
VP> lib a : a_gcc.cpp : <toolset>gcc ;
VP> and the alternative will be selected depending on the value of
VP> <toolset> feature. But consider this:
VP> lib a : a_msvc.cpp : <toolset>msvc <link>static ;
VP> lib a : a_gcc.cpp : <toolset>gcc ;
VP> What the user wants here?
This is brilliant question ;)
VP> It might be that the user wants the first alternative to be always
[Sorry, skipped]
VP> will match.
VP> My opinion here is that it's bad design to have one syntactic
VP> element to be used both to affect selection of alternatives,
VP> and, once alternative is selected, to affect build properties.
I strongly agree with this.
[Sorry, skipped]
VP> Comments?
I don't like Devid's way, but really like your's one. Current
Boost.Build behaviour is fail to build if requirements not fully matched.
This way I build my projects, very huge projects, and everything is perfect.
With Devid proposal I definitely will have problems.
With best regards, Konstantin Litvinenko.
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