Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-03-12 04:18:58


Hi Michael,

I've just come across a post of your on Boost-Users mailing list, which
relates to Boost.Build. It's much better to post them to the
Boost.Build mailing list. For example, I only occasionally browse Boost-users.

Michael Hunley wrote:
> I just completed porting our server from XP to Linux, which uses
> Boost::Thread for the threading library. I found it was infinitely more
> convenient to publish the libs in their various formats
> (variant|sub-variant) into a common, top-level folder under
> BOOST_ROOT.

[...]

> but I did not see anything in the build documentation
> (like bjam "Install [folder]" or some such). I ended up modifying the
> BOOST_ROOT/Jamfile to have a stage target that published all the threading
> libs to BOOST_ROOT/bin with proper suffixes for the variants I cared about
> (debug and release for the moment).

> How are others doing this sort of thing that are using Boost?
> Is there a common way to do what I did by doctoring the Jamfile that is
> less invasive (so I don't have to repeat in the future when I get releases
> from CVS)? I am new to Linux & Boost, so may not know how I should be
> getting at these things.

I don't know :-) All my projects use V2 already, so they just get needed
library directly.

> My request, if the answers to the above don't address them, is that some
> form of install or publish to a common location be added to the boost
> build. If I were more intimately familiar with Boost and the build system
> (and the various installation platforms) I would volunteer to help, but...

I'm not sure how this can work. There are two use cases
1. Using Boost without Boost.Build. In this case all libraries should be put
into one stage directory, somewhere on top-level. I think we'll have this
for V2.
2. Using Boost with Boost.Build. In this case, you can avoid staging. You
application might be declared like

exe hello : hello.cpp @/boost/filesyste/fs ;

and the Boost.Filesystem library will be linked in.

> My second request may also already be possible, but my limited experiment
> and reading made it seem not. I'd like to be able to declare a
> sub-project that points to a whole other boost-build.jam hierarchy; e.g. I
> want to make
> Boost a sub-project of mine. This seems much more plausible and likely in
> the new versoin 2 format where the dependency declarations are more
> straight-forward (by name, not explicit path).

I don't think anything like that is possible in V1. In V2 -- do you really
mean making boost subproject? "Subproject" != "component" or "Jamfile".
Subprojects inherit requirements from parent project, that's their primary
goal. I guess you meant directly using targets declared in Boost Jamfiles.
Yes, it's possible, as shown above.

For more details, you might want to look at the tread started with

http://article.gmane.org/gmane.comp.lib.boost.build/2095

and subprojects specifically are discussed in

http://article.gmane.org/gmane.comp.lib.boost.build/2106

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