Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-07-18 09:17:27


Hello,
I'd like to tighten up the rules for conditional requirements.

Consider:

exe a : a.cpp :
<variant>debug:<optimization>speed
<optimization>off:<define>USE_SLOW_BUT_TESTED_ALGORITHM
;

Now, someone just calls "bjam" and "a" will be built with default properties:
"<variant>debug <optimization>off". Requirements are evaluated and the result
is that <optimization>speed is used and <define>USE_SLOW_BUT_TESTED_ALGORITHM
is added.

And that's confusing! I'd expect the target to be build either with
<optimization>speed or <optimization>off and <define> to appear only in
second case. But the target is build with <optimization>off and <define>.
IOW, one conditional requirements changes property used as condition for
another.

I think the simplest solution is to declare that in conditional property, part
after ":" can be only free or incidental, and that free/incidental features
cannot be present before ":". Opinions? Anybody using non-free conditional
properties?

- Volodya

 


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