Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2004-07-12 00:04:57


rameysb wrote:

> I've got Jamfile in my test directory.
>
> I builds and runs all my tests on mulitple configurations. So far so
> good.
>
> Except one: That platform uses STLPORT which requires that
> everything be built with the the multi-threaded compabible object
> files and libraries. The Jamfile makes no specific indication as to
> whether compilations should be done with or without multi-threading.
>>>From observing the files produced. It seems that it builds for
> single tasking executables by default.
>
> My question is: How should I specify that for one particular
> situation - configuration uses STLPort - that it should build
> executables for multi-threading and an use corresponding runtime
> libraries?

The least annoying way is to add a requirement rule that checks for
stlport use and adds the <threading>multi requirement as needed. This is
what the std::locale-support and std::facet-support rules do (in
boost-base.jam). It might look like so:

rule stlport-requirements ( toolset variant : subvariant-path properties * )
{
if [ MATCH .*(stlport).* : $(toolset) ] ||
[ MATCH .*(stlport).* : $(properties:G) ]
{
properties =
[ difference $(properties) : <threading>single ]
<threading>multi ;
}
return $(subvariant-path) $(properties) ;
}

And then add the name of the rule to the requirements section.

HTH.

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com - 102708583/icq
 

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