|
Boost : |
Subject: Re: [boost] bcp update, was: The boost component dependencies blues
From: Stefan Seefeld (seefeld_at_[hidden])
Date: 2009-12-17 08:36:29
On 12/17/2009 07:03 AM, John Maddock wrote:
>
> The problem here is present in pretty much every graph and
> property_map header, something like:
>
> #ifdef BOOST_GRAPH_USE_MPI
> #include <boost/property_map/parallel/distributed_property_map.hpp>
> #include <boost/property_map/parallel/local_property_map.hpp>
>
> //...
>
> #endif
>
> which means that the MPI dependency is conditional on whether
> BOOST_GRAPH_USE_MPI is set almost no matter what graph header you
> include.
>
> BTW this has an impact for build tools like bjam (probably others as
> well) that perform quick regex based dependency analysis rather than
> preprocessing to build the dependency tree. As a result the graph
> headers will get marked as out of date if any MPI or serialization
> header is out of date, even if they're not actually being used :-(
Exactly. And I think this is a problem for packaging, too (which
unfortunately boost developers don't seem to care much about):
If you were to build a Boost.Graph binary package, what would it contain
? And what would it depend on ?
If the above MPI extension was in a separate header, packagers could
consider it as part of an extension package, and thus build a
Boost.Graph package without it. However, as it stands, such a separation
is impossible, so either this feature isn't available at all, or
Boost.Graph depends on Boost.MPI (and thus Boost.Serialization, etc. etc.)
(I seem to remember similar discussions with respect to dependencies on
Boost.Serialization, but I don't recall whether there was any official
policy that people agreed upon.)
Thanks,
Stefan
-- ...ich hab' noch einen Koffer in Berlin...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk