Boost logo

Boost :

Subject: Re: [boost] List of C++ 11 only Boost libraries and their status?
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-11-28 15:13:57


On 28 Nov 2014 at 11:15, Robert Ramey wrote:

> In boost we are currently having working on (and having difficulty with)
> dependency managment. We don't yet have any formal requirements
> for library versions (vs boost versions) - but I think we will have to
> move there eventually. I see this as another step in boost modularization.

FYI BindLib implements API and optional ABI version management. You
use binds to hard bind a specific dependency to a specific API
version. Different libraries in the same translation unit can bind to
different versions of the same dependency.

For dependency management, you're probably not going to like my
solution as I don't either, but essentially you git submodule all
your library dependencies into your include directory, so
library/include/boost/library/submodule. You then go ahead and use
them directly, so instead of:

#include "boost/spinlock/spinlock.hpp"

you do:

#include "spinlock/include/boost/spinlock/spinlock.hpp"

You probably now wonder isn't this very wasteful having every Boost
library keep its own git submodules of other boost libraries? Well,
it turns out that git spots you doing that, and only keeps a single
copy of every git submodule no matter how frequently used. Therefore,
this solution lets your library run standalone AND correctly
"symlink" to the appropriate Boost library when being used from
within Boost. The only cost is much increased checkout disc space
really and that it takes a good while longer to submodule update, and
I'm sure some future actual symlink solution as part of b2 headers
could fix that too.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



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