Boost logo

Boost :

Subject: Re: [boost] [ot] choosing a build system
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-05-09 12:23:24


on Wed May 09 2012, Francois Duranleau <xiao.bai.xiong-AT-gmail.com> wrote:

> On Tue, May 8, 2012 at 6: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.
>
> Maybe you can have a look at premake
> (http://industriousone.com/premake). Its works in a similar way to
> CMake, that is, it generates project files/makefiles for target
> platforms, but the nice thing is that it uses Lua as a language.

Wow, that looks like a really beautiful design. Maybe someday it would
make sense for Boost. However, as of now that project still looks way
less mature and less-well supported than CMake is, and that makes it
somewhat inappropriate for Boost or other "important" projects. I would
be cautious if I were you.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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