Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2004-12-24 01:56:50


I'm making adjustments in the build and test Jamfiles to take into account
changes made to permit the serialization library to be built and used as a
DLL. This as raised a couple of questions in my mind.

Re: the Jamfile for test

a) It would seem to me that if the test is to be built and run with
<runtime-link>dynamic - indicating the usage of C++ runtime dll, that the
default build for the test should be to use the dll versions of all the
libraries.
I've managed to do this in sort of a kludgy way and it might be working.
But I'm still working on it.

b) the above raises the issue of how one should specifiy a target be built
to use the dll vs the static library. <runtime-link>dynamic does something
else. I was looking for a variant but I don't find it. I'm thinking that
the way its done in the Program Options library is the way to go.

c) when using the dll versions of boost libraries, the dll has to be on the
path (at least with windows). It seems that bjam takes care of this
automatically. So its only a problem when I want to debug the app with my
VC IDE. It might be a good idea if the document mentioned this.

d) The section on Testing Auto-linking in .../more\separate_compilation.html
leaves me extremely confused. If I try to build the test without
auto-linking by including the BOOST_???_NO_LIB then the libraries names
searched for don't match the onces created by the build Jamfile. That its
the above define doesn't get propogated to the build Jamfile and I don't
know how it would. If I alter my Jamfile so that it doesn't include
common-variant-tag as a target. The when the bjam stage is invoked, the
libraries won't have the version specfic stuff. The situation is made even
more compilicated by the fact that I have one dll (boost_wserialization.dll)
which calls into another one (boost_serialization.dll). I've made it work
by using the variant tags all the time - that is never using
BOOST_???_NO_LIB. But now I'm concerned the the section at the end of the
reference which seems to suggest that this won't work on platforms which
don't suppor t auto-link.

This seemed very simple when I started, but now I'm trying to get the
details right and I'm having lots of nagging issues like the above. Its
actually harder to figure out than the serialization library itself.

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk