$include_dir="/home/hyper-archives/boost-build/include"; include("$include_dir/msg-header.inc") ?>
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