Boost logo

Boost :

Subject: [boost] questions regarding dependency reports(s)
From: Robert Ramey (ramey_at_[hidden])
Date: 2014-09-26 18:35:54

I've been looking at the question of "dependencies" and I would
like to know a little more about how they are generated.

I've looked at:



c) bcp documentation

And it doesn't seem that they all produce the same list of

a) doesn't include any *.cpp files. So I assume that it contains
less than the true number of dependencies. That is if a *.cpp
file includes a header as part of it's implementation and not
it's interface, it wouldn't be included.

b) produces a very intimidating graph. I'm not sure what the
rules are for it's generation. I'm guessing that it uses dependencies
at the library level rather than the *.cpp level which might make
things look worse than they are.

c) BCP seems pretty exhaustive in that it cans all the code
in all the *.cpp libraries, tests, examples etc. For lots
of applications - e.g. if I wanted to include a boost library with
my application but not all the tests, It would generate a likely
much larger subset than I need. But maybe not. If my application
includes the boost library.dll then I guess I have to include it all.

This raises an interesting question to me. Suppose I want to
distribute my app with source and I include a CMake which
just doesn't build the libraries but just includes the relevant
*.cpp files in the application build itself? This would make
my application depend upon the smallest subset of boost

What would it take to make a version of BCP which, given
an arbitrary group of source files, returns a list of headers
and *.cpp files which could be used to build the app?

We know from an intuitive basis that we want to give the
option of delivering a smaller boost, but we've always thought
that that means delivering a library subset. Is this
really what we want? What would users do with the smaller
subset? (Besides complain that its not small enough?)
How about if we tweaked BCP to deliver just a subset of files relevant
to the target? Would that make them happier? Would
it get us off the hook for trying to "solve" what the dependencies

Just thinking out loud here.

Robert Ramey

View this message in context:
Sent from the Boost - Dev mailing list archive at

Boost list run by bdawes at, gregod at, cpdaniel at, john at