gazebosim / gz-cmake

A set of CMake modules that are used by the C++-based Gazebo projects.
https://gazebosim.org/libs/cmake
Apache License 2.0
27 stars 30 forks source link

Consider using cmake features up to 3.28.3 on Ionic #432

Closed scpeters closed 3 months ago

scpeters commented 5 months ago

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

mjcarroll commented 5 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.

j-rivero commented 5 months ago

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.

scpeters commented 5 months ago

thanks, @j-rivero! that's also pointed me to some new features between 3.10 and 3.22 that may be useful in #350

scpeters commented 3 months ago

we have entered feature freeze, so I don't think we will change the required cmake version for Ionic