Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-12-29 01:48:45


On Thursday 29 December 2005 02:31, Reece Dunn wrote:

> >What I'm trying to avoid is having to specify boost's unit test lib on
> > each test project (in this case I have only one, 'simple'). How can I do
> > this?
>
> You could try adding something like:
>
> project test : : requirements
> <variant>debug:<library>boost_test-debug.lib
> <variant>release:<library>boost_test-release.lib
> ;
>
> to the test/Jamfile. Note that I am not sure of the exact syntax, so you
> would need to refer to the www.boost.org/boost-build2 documentation. This
> works because BB inherits all project requirements from parent Jamfiles
> upto and including the first directory containing a project-root.jam file.

I am afraid that inheriting of <library> feature is currently broken, so this
won't work. What will work, however, is this (in top-level Jamfile)

   lib foo ;

   project test : requirements <library>/test//foo ;

Here, we use absolute id of the target, and so subproject will have no
problems accessing it.

> >Also: do I have to specify in the Jamfile inside directory 'test' each of
> >the test projects I want to build? Isn't it possible to build all sub
> >projects automatically?
>
> BB will only build any project dependencies. If you want to automatically
> build sample from the test directory, you will need to add:
>
> build-project sample ;
>
> which will force BB to evaluate all targets in sample/Jamfile and build any
> that are out-of-date.

It's also possible to do this:

   # Get all child Jamfiles
   local sub = [ glob */Jamfile ] ;
   # Strip filenames, getting just directories;
   sub = $(sub:D) ;
   for local s in $(sub)
   {
                build-project $(s) ;
   }

- Volodya


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