Boost logo

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, david.abrahams at, gregod at, cpdaniel at, john at