Boost logo

Boost :

Subject: Re: [boost] [ot] choosing a build system
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-05-08 19:18:50


On Tue, May 8, 2012 at 3:54 PM, Nathan Ridge <zeratul976_at_[hidden]> wrote:

>
> Hello,
>
> I am developing a new C++ library (unrelated to Boost) and I need
> to choose a build system for it.
>
> I had originally planned to use Boost.Build, because I figured that
> it would be particularly suitable for a C++ library, and because
> I've come to associate Boost with high quality and excellence.
>
> However, recently I've heard talk of Boost switching its own build
> system from Boost.Build to CMake (in fact, the currently active
> thread about modularization suggests that this change is imminent).
> My understanding is that Boost is the primary user of Boost.Build,
> and therefore I am concerned about what this switch means for the
> future of Boost.Build.
>
> Do you think choosing Boost.Build as the build system for a project
> is still a sound choice, or am I better off choosing something else
> like CMake?
>
> More generally, what build system would you recommend for a C++
> library?
>
> My requirements for the build system are the following:
> - straightforward support for multiple variants of the build
> (32-bit vs. 64-bit, debug vs. release, static vs. shared, etc.),
> including coexistence of multiple variants on the same machine
> - general ease of use (for the library writer and library users)
> - suitability for a C++ project
> - cross-platform, FOSS
>
> Any thoughts are appreciated.
>

Actually the mention of CMake in that very same modularization thread
piqued my interest as well.

The build system I have the most experience with (and that's not saying too
much) is SCons, and only because (a) it was the build system on the
software project I primarily used to develop for; and (b) it encouraged me
to learn Python, so as far as learning new syntaxes (syntices?), I killed
two birds with one stone. SCons works for me, I like the fact that it uses
Python syntax, and I know other people in my research group who also use
SCons for other projects and enjoy it.

There is a comparison of SCons with other build systems (CMake and
Boost.Build among them) on the scons.org wiki [1]. That said, if it's not
too off-topic, I'm also curious to hear from those who've used CMake vs
Boost.Build (vs SCons?).

- Jeff

[1] http://www.scons.org/wiki/SconsVsOtherBuildTools

P.S.: There's this quote from [1]: "The Boost.Build team is seriously
considering the use of Scons as its low-level build substrate." How long
ago was this?


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