Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2004-08-27 07:39:29


Vladimir Prus <ghost_at_[hidden]> writes:

> Hello,
> 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:
>
> vc-Link
> ../../../bin/boost/libs/program_options/test/a/intel-win32-8.0/debug/runtime-link-static/threading-multi/a
>
> 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
v1. ;-)

-- 
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