Subject: Re: [boost] Removing old config macro and increasing compiler requirements.
From: Stephen Kelly (steveire_at_[hidden])
Date: 2013-08-04 06:56:42
On 08/04/2013 12:45 PM, Daniel James wrote:
> On Sun, 4 Aug 2013, at 12:27 PM, Stephen Kelly wrote:
>> Note that the libraries are all in an interdependent mesh. So attempting
>> to use any one of them (not just the 'any' one of them :) ) results in
>> requiring all of them.
> I tried deleting the unordered library from my repo and could still run
> the any tests just fine. So unordered's compiler requirements don't
> affect boost::any's at all, even though it's in your list. Module
> dependencies are too coarse grained. They pull in a lot of transitive
> dependencies that don't affect actual use. Which is what determines
> compiler requirements.
That's not unexpected. I expect you did not use an old enough/platform
specific enough compiler to require all the conditional dependencies.
For example, if you used GCC3.3+ boost::config does not depend on
boost::core for you.
My test was with the cmake-powered repos. Each library in those repos
searches for all dependencies of each library as hard dependencies
currently, so the list we arrive at is a union of hard and optional
dependencies for all platforms and compilers.
There is of course an argument for trying to encode optional
dependencies in the CMake files, and I do think that should be done.
However, this is a candle we can burn at both ends.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk