Closed scpeters closed 3 months ago
Helpfully, here are the release notes for CMake releases: https://cmake.org/cmake/help/latest/release/index.html
I skimmed through and didn't see anything particularly compelling in the post 3.22 releases. There are a few things related to things we don't use (FetchContent and C++ modules mainly), but could be interesting in the future.
This is probably the best summary of new features that we can find https://cliutils.gitlab.io/modern-cmake/chapters/intro/newcmake.html.
The debugger with ADP support in 3.27 could be something cool to use but does not require that we expose the requirement in our CMakeLists.txt
. As @mjcarroll mentioned, the C++20 modules in 3.28 could be a good addition but we probably can live without them. Also better support for header-only libraries and better integration of fetchcontent which are not widely used by us.
thanks, @j-rivero! that's also pointed me to some new features between 3.10 and 3.22 that may be useful in #350
we have entered feature freeze, so I don't think we will change the required cmake version for Ionic
Context: cmake versions provided by Ubuntu
Desired behavior
We currently require cmake 3.22.1 on Ionic (see https://github.com/gazebosim/gz-cmake/issues/350). Since Ionic will not support Jammy with CI or binary builds, we could consider requiring a higher version, up to 3.28.3. If there is not a compelling reason to do so, there could be some value in not intentionally making it more difficult for people to build Ionic from source on 22.04.
Please suggest compelling cmake features between 3.22.1 and 3.28.3 and we will consider increasing the minimum required cmake version for Ionic.
Alternatives considered
Implementation suggestion
Additional context