Boost logo

Boost :

Subject: Re: [boost] CMake Announcement from Boost Steering Committee
From: Alain Miniussi (Alain.Miniussi_at_[hidden])
Date: 2017-07-19 12:57:27


On 19/07/2017 14:19, Ion Gaztañaga via Boost wrote:
> On 19/07/2017 3:48, John McFarlane via Boost wrote:
>
>> I'm sure this is how a lot of C++ users out there feel. Yes, anyone who
>> can learn C++ can learn another build system. But why require more
>> burden
>> than is strictly necessary? CMake is the very clear trend across the
>> broader community. Yes, it's far from perfect -- despite a monumental
>> clean-up effort. But more developer systems have CMake installed
>> already.
>
> CMake, for instance, does not really build. AFAIK, it generates build
> instructions for the real build system.
A little bit like bootstrap.sh does, plus the project-config.jam that I
need to modify by hand each time I want to test a new configuration.
>
>
> This is unacceptable to me, I want something that really builds the
> program and also runs tests from the command line, I want to use the
> same commands in Windows, Linux, FreeBSD and other systems where I
> test my software.
I don't, I want too use the same system I'm already used to anyway on
those platforms.

> I don't want to waste my time recreating MSVC projects every time I
> build. I want regression tests to continue working nicely and portable
> passing common useful options that work in every system.
>
> CMake is popular, no doubt. So is autotools, and no one is proposing
> it for Boost.
Because it's not available on Window I guess. On Unix-like, I've found
autotools slightly less worse than bjam in the sense that when I need to
deal with code mixing MPI, C++, Fortran etc.. bjam is out. So I went
autotool->bjam->autotool(yurk!)->CMake.
But if a project is simple enough for bjam, then moving to autotool is
probably a bad idea.

> I have no problems to switch to CMake if:
>
> - Cmake does everything Boost.Build does with the same or less work.
I just enter 'make' in my build directories, cmake is re-called
automatically if necessary. And it does a lot of thing I could not do
with bjam (arbitrary feature detection mostly, seems a PITA with bjam).
And I can switch between all my configurations just by changing the
build directory which, when I need to test the cross product of various
compilers/MPI, is a huge gain.
I am not sure how to build an test N configuration at the same time with
bjam without having N instance of the code tree. Maybe it's in the
tutorial.

> - Cmake performance is equal or better.
Well, cmake never required me having to launch a script in the back
ground to send signals to hanging bjam tasks during test (eternity can
be quite long), so how can it be worse... as for the (usually parallel)
build, source dependencies are what they are, and so is the compiler.

>
> CMake popularity is not important for me as a Boost programmer, in
> some years CMake will be replaced by another super-popular build system.

Yep, and maybe people will choose to move to that system if they think
it's worth it.

> For users we can automatically generate CMake projects from
> Boost.Build, and maybe other popular build systems.
>
> Ion
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost


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