Boost logo

Boost :

Subject: Re: [boost] [ot] choosing a build system
From: Ivan Le Lann (ivan.lelann_at_[hidden])
Date: 2012-05-09 13:04:11


----- Mail original -----
> De: "Dave Abrahams" <dave_at_[hidden]>
> À: boost_at_[hidden]
> Envoyé: Mercredi 9 Mai 2012 18:23:24
> Objet: Re: [boost] [ot] choosing a build system
>
>
> 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.

I choose premake against CMake because I found it trivial to add
something close to "usage requirements" of Boost.Build.
(It seems premake might support that out of the box in next version.)

I did not really enjoy trying to add that to CMake.

Regards,
Ivan


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