From: Phillip Seaver (phil_at_[hidden])
Date: 2006-03-30 12:52:59
John Maddock wrote:
>> The advantage is that you get the other usage requirements. In the
>> version I have, boost//headers has "<include>.
>> <define>BOOST_ALL_NO_LIB=1" in its usage requirements. So, that will
>> add BOOST_ALL_NO_LIB=1 to the list of defines for your compiles in
>> addition to giving you the include directory. That's one of the major
>> advantages of boost-build for me: the project sets usage requirements
>> so that all the project users don't have to.
>> As David said, you should use "/boost//headers". The other user may
>> have to do "use-project /boost : path_to_boost ;", depending on their
> That would include me as well, without the use-project I get an error from
> bjam. It still means hardcoding the path-to-boost though which is what I am
> trying to avoid.
You don't have to do use-project in your jamfile, though. Mine is in
So, the user could put use-project in their root with the hard-coded
path to boost (which is what I do -- it's relative to the Jamroot
location). Or they could use an environment variable and do something
like "use-project /boost : [ modules.peek : BOOST_PATH ] ;" (after
setting the BOOST_PATH environment variable to point to their boost). I
suspect there's a way to do it with site-config.jam or user-config.jam,
but I haven't played with those much.
> A couple of asides:
> 1) I don't see this mentioned in the docs - or at least a quick grep didn't
> find it. How about a "Refering to Boost and other bjam.v2 based projects"
> section ?
> 2) I'm still not convinced that defining BOOST_ALL_NO_LIB globally is a good
> idea, it just masks any bugs/incompatibilities between bbv2's name mangling
> and what auto-linking expects, but <shrug> whatever.
And if they change it later, you'll get that change without having to do
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