|
Boost : |
Subject: Re: [boost] Link dependencies
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-12-06 09:19:01
On 5 Dec 2014 at 11:24, Robert Ramey wrote:
> >> I imagine, when Boost gets
> >> truly modular, one would download sources of the needed libraries
> >> separately,
> >
> > That is explicitly a non-goal for Boost.
> >
> > http://thread.gmane.org/gmane.comp.lib.boost.devel/254635
>
> The problem is that this is a lot harder than it looks. It's much more than
> cleaning up dependencies. Proposals to achieve this - to the extent that
> they can be characterized as proposals - have been incomplete, impractible
> and/or unconvincing. I firmly believe that we want to do this and are on
> the path to doing so.
I think that statement poorly phrased when we have a fully functional
and proven working modular Boost proposal in BindLib. It's just a few
libraries supporting it yet, but I claim you cannot call this
"unconvincing" when it works right here and now.
Want to test my proposed solution for modular Boost right now? Do
this from a VS2015 CTP [1] command box:
git clone https://github.com/BoostGSoC13/boost.afio.git
cd boost.afio
git checkout develop
git submodule update --init --recursive
git clone https://github.com/chriskohlhoff/asio.git
cl /Zi /EHs /Oy- /Ob0 /MD /RTC1 /GF /GR /Gy /bigobj /wd4503
/Zc:forScope /Zc:wchar_t /W3 test\test_all.cpp detail\SpookyV2.cpp
/DUNICODE=1 /DWIN32=1 /D_UNICODE=1 /D_WIN32=1 /Iinclude /Itest
/DAFIO_STANDALONE=1 /DASIO_STANDALONE=1 /Iasio/asio/include
/DSPINLOCK_STANDALONE=1 /DBOOST_AFIO_RUNNING_IN_CI=1
... and it should hopefully spit out a test_all.exe which has not a
single Boost dependency in it, despite being a 100% Boost library and
still written to use Boost.Test, Boost.Config, Boost.Thread and so
on.
I stitched that together from my test config here so it may be
slightly off, but it definitely works. I am going to set up Jenkins
CI testing for standalone builds later today.
[1]: Only VS2015 CTP currently has a working Filesystem TS. If you
use VS2013 or GCC or clang it'll need to link in Boost.Filesystem.
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