Boost logo

Boost :

Subject: Re: [boost] [ot] choosing a build system
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-05-15 08:40:10


on Sun May 13 2012, Sergey Popov <loonycyborg-AT-gmail.com> wrote:

> On Sat, 12 May 2012 17:08:26 -0600
> Dave Abrahams <dave_at_[hidden]> wrote:
>
>> >> I don't notice any particular limitations in CMake projects due to
>> >> that approach. Do you?
>> >
>> > Yes. E.g. it's impossible to use any other method of determining
>> > whether targets are up-to-date than timestamps and have more
>> > abstract targets than files/aliases.
>>
>> I don't know enough about cmake to know whether I should argue with
>> you on these points, but let's stipulate to them. But what kind of
>> job does that prevent you from getting done?
> Well.. Using md5 checksums is more robust than Make's timestamp
> comparisons, I have no idea why would you want to resist progress
> here :P

Because it's not a problem in practice, I don't consider it to be a high
priority.

>> > Also, the extra step is simply annoying.
>>
>> Matter of taste, I guess. It annoys me that Boost.Build does a
>> configure every single time I build.
>
> There's no such thing as 'configure'. It just doesn't exist.

It certainly does exist. I wrote a lot of configure code for
Boost.Build myself.

>> > It doesn't matter that you can hide it with scripts and what-not.
>> > It's still there, making your life harder and the overall system
>> > more complex.
>>
>> Seems to simplify things from my POV. Separation of concerns and all
>> that.
>
> Nope. This particular separation happens to be fake.

Not true. For example, use a Ninja backend with CMake instead of a Make
backend: instant speedup! It tells you there's nothing to build in an
already-built Boost tree in < 1s on a weak laptop. That wouldn't be
possible if the low-level build engine were not a separate component.

> Besides, no sane modern software system's communications are based on
> generating files for each other.

So you don't use C++ compilers, I guess.

> They prefer using apis, either by linking directly or via D-Bus or
> something. Generating (Make)files is just a hack.

It may not be pure, but it works.

-- 
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