Am 05.06.21 um 03:43 schrieb Peter Dimov via Boost:
Am 04.06.21 um 03:57 schrieb Glen Fernandes via Boost:
On Thu, Jun 3, 2021 at 9:27 PM Peter Dimov wrote:
friendlyanon: 3.14 Glen Fernandes: 3.14 Niall Douglas: 3.8 or 3.9 Alexander Grund: 3.13 or 3.14? Mike: 3.13 or 3.15 Deniz Bahadir: 3.13 Andrey Semashev: 3.7? 3.10?
Have I got everyone's "vote" right? Paul (Bristow) effectively suggested 3.20+.
So would I. The 3.13 is just the bare minimum I warn to never go below. Can we think of a specific feature in 3.16 or newer that we'd
Deniz Bahadir wrote: like very much to have? I have good arguments for 3.13, 3.14 and 3.15, but above that, can't think of anything at the moment.
I do not know if you'd like to have the following features "very much", but these stand out to me: * for 3.16: * `target_precompile_headers()` command was added. * `BUILD_RPATH` / `INSTALL_RPATH` target properties now support generator expressions. * `FindPython` and `FindPython3` modules gained options to control which ABIs will be searched. * CPack now supports multiple configurations. * for 3.17: * `cmake` gained the "Ninja Multi-Config" generator. * However, this is nice for the user but irrelevant for determining the minimum CMake version for Boost. * `target_compile_options()` command now honors the `BEFORE` keyword more consistently. * The `DEPRECATION` target property was added. * for 3.18: * `add_library` / `add_executable` commands can now create `ALIAS` targets referencing non-`GLOBAL` `IMPORTED` targets. * Creation of an `ALIAS` target overwriting an existing target now raises an error. * `get_property()` / `set_property()` with `SOURCE` gained the `DIRECTORY` and `TARGET_DIRECTORY` options to get/set property from the provided directory scope. * The same for `get_source_file_property()` / `set_source_file_properties()`. * The `FetchContent` module `FetchContent_Declare()` command now supports a `SOURCE_SUBDIR` option. * for 3.19: * The `add_test` command now supports whitespace and other special characters in the name for tests it creates. * The `find_package()` command can now handle a version range. * The `file()` command was extended with a lot of functionality. * `file(GENERATE)` was fixed. * The `string()` command gained a set of new `JSON` sub command that provide JSON parsing capabilities. * `FindPython` / `FindPython2` / `FindPython3` gained ability to handle a version range. * `INTERFACE` libraries may now have source files (*.cpp) added. * Fixes error of `install(EXPORT)` in certain situations. * Fix handling `OBJECT` libraries when using "Ninja Multi-Config" generator. * for 3.20: * The `GENERATED` source-file property is now visible from any directory scope. * `add_custom_command()` / `add_custom_target()` now support generator expression in their `OUTPUT` and `BYPRODUCTS` options. * `add_library()` can now handle `IMPORTED` `OBJECT` libraries with multi-architecture configurations. (Mostly affected: Xcode generator when targeting iOS) * `target_include_directories()` command gained `AFTER` keyword. * `target_sources` now works with targets created by `add_custom_target()`. * Compile feature `cxx_std_23` was introduced. * CPack `DEB` generator now has advanced support for the `dpkg-shlibdeps` program. * Source file extensions must now be explicit. (CMP0115) Personally, I value the following features from (CMake 3.18 to 3.20) quite high: * from 3.18: * `add_library` / `add_executable` commands can now create `ALIAS` targets referencing non-`GLOBAL` `IMPORTED` targets. * Creation of an `ALIAS` target overwriting an existing target now raises an error. * from 3.19: * Fix handling `OBJECT` libraries when using "Ninja Multi-Config" generator. * The `add_test` command now supports whitespace and other special characters in the name for tests it creates. * `file(GENERATE)` was fixed. * Fixes error of `install(EXPORT)` in certain situations. * from 3.20: * The `GENERATED` source-file property is now visible from any directory scope. * `add_library()` can now handle `IMPORTED` `OBJECT` libraries with multi-architecture configurations. (Mostly affected: Xcode generator when targeting iOS) * `target_sources` now works with targets created by `add_custom_target()`. * CPack `DEB` generator now has advanced support for the `dpkg-shlibdeps` program.
There are undocumented things fixed here and there, such as list(REMOVE_DUPLICATES failing on empty lists with a fatal error, but I don't remember which version fixed that.
Sorry, neither do I. Deniz -- 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