From: David Abrahams (dave_at_[hidden])
Date: 2004-08-27 07:39:29
Vladimir Prus <ghost_at_[hidden]> writes:
> I think that the v1 had a bug in handling of rules in requirements.
> Consider this Jamfile:
> exe a : a.cpp : <runtime-link>static ;
> I run
> bjam -sTOOLS="intel-win32-8.0" -n
> and get:
> vc-Link ../../../bin/boost/libs/program_options/test/a/intel-win32-8.0/debug/runtime-link-static/a
> Then I change Jamfile to be:
> exe a : a.cpp : std::facet-support ;
> where std::facet-support is supposed to mean "<runtime-link>static is toolset
> is intel". The bjam output is now:
> Note the added "threading-multi". This is suprising, since I'd
> except std::facet-support to be exactly the same as
> <runtime-link>static on intel.
> The problem is that the toolset::requirements rule is run before
> std::facet-support, so it sees <runtime-link>dynamic and immediately
> adds <threading>multi.
> Maybe, toolset::requirements should be appended to the list of
> requirements, not prepended?
Where is this toolset::requirements rule defined?
Oh, that's a Rene thing. I had no clue it was there, and don't know
how it should interact with anything, so I'll have to let Rene answer.
In general I dislike this sort of heavy pattern-matching and toolset
switching. We should find a better way. Then again, we should retire
-- Dave Abrahams Boost Consulting http://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