Boost logo

Boost :

Subject: Re: [boost] Distributed Boost with CMake: proposal and volunteering
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-01-29 18:00:45

At Sat, 29 Jan 2011 12:21:54 +0100,
Daniel Pfeifer wrote:
> Daniel Pfeifer <daniel_at_[hidden]>
> Subject: [boost] Distributed Boost with CMake: proposal and volunteering
> Date: Sat, 29 Jan 2011 12:21:54 +0100
> To: <boost_at_[hidden]>
> Message-ID: <9258a13ec6727bac1f0dc8baa849fc35-EhVcX1dJTQZXRw0RBgwNVDBXdh9XVlpBXkJHHF5ZWC9fUkYLQVx+H1dWXjBeQ0wEXFpZQVlR-webmailer2_at_[hidden]>
> User-Agent: Host Europe Webmailer/2.0
> Reply-To: boost_at_[hidden]
> List-Post: <mailto:boost_at_[hidden]>
> Hi all,
> I would like to propose my approach to a modularized build of the
> Boost C++ Libraries with CMake.
> The project is found on

Ummm... wow! This is certainly a welcome surprise.

* Did you do this all by yourself?
* Is it based on prior Boost/CMake efforts?
* Did you know about the overlapping effort at Ryppl?

> The following features are currently implemented:
> * Aggregate modules from different sources (CVS, SVN, GIT, tarballs,
> ...).
> * Build, Test, Install

* Have you verified that it builds, tests, and installs equivalent
  targets to what is being done by bjam? And if so, how?

> * Create a binary installer with selectable components for Windows.
> * Create a source package (with the modules included) that can do
> everything in this list (except the first entry).
> * Create a Debian source package that can be uploaded to a Launchpad
> PPA where it is built and packaged into many binary Debian packages.
> * Build Documentation (the usual quickbook-doxygen-boostbook-chain).
> * Tested on Windows (Visual Studio 10) and Ubuntu (GCC).

* What was the test methodology?

> * Precompiled headers (currently MSVC only).

I know what precompiled headers are, but I'm not sure specifically
what it means that you're listing them here.

> * Build two Boost.MPI libraries on Debian: boost_openmpi and
> boost_mpich2.
> * Tests actually make use of Boost's autolinking feature.


> This tool would allow the following Boost development process:
> * Each Boost library uses it's own repository (no matter which VCS)
> * Boost.CMake has a list of modules (or multiple list: eg 'boost' and
> 'incubating')
> * A modules definition consists of the information about where to get
> the source code from.
> * Boost.CMake can be used to aggregate all modules, run tests, build
> release packages...
> * Incubating libraries can be tested before they become an official
> part of boost.

Very nice!

> Please note that I am not proposing a development process. I am just
> proposing a tool.
> I am volunteering to extend and maintain the tool so that it can (help
> to) drive the development process.

Whoa, seriously? Gratefully accepted! However, what I'd really like
is to get you and the other stakeholders who are investing in the same
thing (e.g. Kitware) on the same page, so that it's not just up to you
alone. One of the main goals of the Ryppl project is to use tools
that are maintained by more than one or two individual developers.

> If you decide that all libraries should use git, I can drop the
> support for all other VCSs, no problem.
> Also, I am happy to implement other missing features.

Let's talk!

> In the next couple of days I was going to write some documentation and
> a tutorial how to migrate the libraries to CMake.

I'm a little confused. From the results you've reported, it sounds
like you've already done that migration. So what's left to do?


Dave Abrahams
BoostPro Computing

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