Boost logo

Boost :

Subject: Re: [boost] [ot] choosing a build system
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-05-12 08:32:41

on Sat May 12 2012, Sergey Popov <> wrote:

> On Fri, 11 May 2012 21:56:47 -0600
> Dave Abrahams <dave_at_[hidden]> wrote:
>> I think you're not giving CMake enough credit. It has been evolving
>> quite quickly over the past few years. Its programming language may
>> be old and crusty, but it's expressive enough to get the job done.
>> Most importantly, it hits a "sweet spot" between abstract and direct
>> that makes it practical and accessible.
> The language isn't the only problem. Remember Makefile generation? It
> absolutely isn't justified.

It's justified by two things:

1. The fact that it works well in practice

2. The fact that it's compatible with many different environments and
   usage patterns and with the desire of many programmers to work in an

> Autotools uses this approach only to achieve the cool trick of
> allowing you to make distribution packages that don't require anything
> other than standard unix utils to be built. It's just easier to make
> an unitary build tool than mess around with makefile generation and
> suffer all limitations of this approach.

I don't notice any particular limitations in CMake projects due to that
approach. Do you?

> What's so hard about implementing topological sort, anyway?

Not much. But that's a bad way to do things if you want to exploit

Many small issues like that are why I'd rather let a tool like make
handle the job.

> Make isn't magic.
> All in all, the fact that build tools with such ancient design are
> still seriously developed is disheartening. Pretty much shows that
> people don't care much about buildsystems.

I think you've mischaracterized it. Many people care about
buildsystems. However, some of us care more about practicality than

Dave Abrahams
BoostPro Computing

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