Am 02.06.21 um 18:32 schrieb Peter Dimov via Boost:
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 PropertyTree.
- 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(
Opinions?
I never understood why users were so lazy to get the latest CMake version and insist on using old, outdated and buggy versions which were supplied with older Linux distributions. I always recommend to users to use the latest CMake version. (They are very good with keeping backwards-compatibility.) Kitware provides binaries for Windows, Mac and Linux and even has an APT repository for Debian-based Linux distributions. And even building CMake oneself is also quite simple. If Boost is really hesitant to require this of its users I recommend to collect the features that you need and require at least the latest version of CMake which brings in these features. Something I always recommended was to go with at least CMake 3.13. This one is able to treat OBJECT library targets (almost) identical to other types of CMake targets and also contains some simplifications/unifications to the `target_*` commands. If, however, for example generated files are used and therefore the `GENERATED` property, I recommend to take at least CMake 3.20, because that one makes it possible to see that property from any directory. My 2 ct. Deniz PS: A short note/disclaimer: I know about and especially mentioned these specific features, because I provided them to CMake. (I needed them and they were missing from CMake.) -- BENOCS GmbH Dipl.-Inform. Deniz Bahadir Reuchlinstr. 10 D 10553 Berlin Germany Phone: +49 - 30 / 577 0004-22 Email: deniz.bahadir@benocs.com www.benocs.com Board of Management: Stephan Schroeder, Dr.-Ing. Ingmar Poese Commercial Register: Amtsgericht Bonn HRB 19378