From: Mike (mike.dev_at_[hidden])
Date: 2021-06-03 11:55:58
> Gesendet: Mittwoch, 02. Juni 2021 um 18:32 Uhr
> Von: "Peter Dimov via Boost" <boost_at_[hidden]>
> I suppose the time has come to have the discussion on
> the minimum CMake version we will support for building
> Boost. Currently that's set to 3.5, which kind of works, but
> is fairly inconvenient.
> The interesting options are
> - CMake 3.8: required for use of the compile features
> cxx_std_11, cxx_std_14, cxx_std_17, etc. Also allows
> source_group(TREE, which is used by Json and
> - CMake 3.9: required by Nowide, I'm not sure why.
> Also, required for FindMPI to define an imported
> target. Building Boost.MPI is optional though.
> - CMake 3.13: required for Boost installation support.
> - CMake 3.14: required for FindPython to be modern
> enough to make building Boost.Python reasonably
> easy. (Building Boost.Python is optional, though.)
> There are also less important nice-to-have things such as
> - CMake 3.10: adds include_guard()
> - CMake 3.12: adds CONFIGURE_DEPENDS to file(GLOB
> - CMake 3.15: adds VERBOSE/DEBUG to message(
If it were me. I'd pick a rather high minimal version initially
that will give maximum convenience/power for implementing
current and future features and then see if there is significant
demand from the community to support older versions.
- Due to lack of usage statistics or knowledge about future
requirements/feature requests, no one will be able to find the
"optimal" tradeoff anyway. So design for change!
- Tis will be a new (at least officially) and optional feature of boost
so there aren't any existing users that are being broken
- Backporting any functionality to older versions or adding partial
support for older versions if that should become necessary,
is much less disruptive for the user base than increasing the
minimal version later on.
- It is reasonable to expect (but not necessarily true) that the
users that are using very old linux distributions are not going
to be the majority of early adopters of cmake-based builds anyway
- Updating cmake is really easy - even on linux. Of course there
might be policy reasons not to do it ("we only use what comes
from the official repositories"), but almost any argument I've
heard against upgrading cmake is also a valid argument against
- Just as with compiler versions, fewer supported cmake versions
simply means less maintenence and test effort as well as less
workarounds, even if no significant features are missing.
- History shows that getting consensu to dropp support for anything
(e.g. older cmake versions in this case) is very likely
going to be a pain in the .... So it is reasonable to assume
that whatever is picked now will still be the en force many
years from now when linux distributions have long progressed
Hence it would make sense to err on the side of being too
modern and fix it if its really necessary, than being too
permissive now based on speculation of what users might want
and being stuck with those restrictions.
My vote would be 3.13 (Debian stable - soon old stable),
or even 3.15 which also adds the MSVC_RUNTIME_LIBRARY setting
and is supported by the recent
Btw.: AFAIK, Visual studio 2019 currently shipps
with cmake 3.20, but I don't know, where to look up
historic versions. It might be valuable to check if
other IDEs also have integrated cmake and what
version that is.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk