Boris Kolpackov wrote:
Peter Dimov via Boost
writes: It's interesting that nobody considers the possibility that b2 is in fact a better build system than CMake, and consequently, that switching from b2 to CMake will actually make things _worse_ in some, if not many, respects.
That may be true, but if you took a vote among all the Boost users asking them which build system Boost should drop, I think it's pretty clear what the large majority's answer would be.
If we supported build2 and CMake and we took that same vote, I'm fairly sure what the answer would be, too.
A less obvious benefit of dropping one of the two build systems is that it frees you up to potentially adopt a forward-looking build system (or rather build system + package manager toolchain). While supporting two build systems has its overheads, supporting three would be untenable.
I guess another way of putting it, what substantial benefit does b2 provide to Boost that is not provided by CMake ...
From my point of view, some examples are
b2 toolset=msvc-14.3,gcc warnings=extra warnings-as-errors=on or b2 toolset=msvc-14.0,msvc-14.1,msvc-14.2,msvc-14.3 cxxstd=14,latest variant=debug,release or b2 toolset=gcc,clang undefined-sanitizer=norecover or b2 libs/something/test where that last line doesn't need a separate run with -DBUILD_TESTING=ON, or -DBOOST_INCLUDE_LIBRARIES=something, or a separate ctest run, all test types are supported equally well, and everything is automatically parallelized. Some of these are easy to add to CMake, others not. (But then again, they have still not been.)