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

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at