Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use cmake 3.22.1 features in Ionic #350

Open
17 of 29 tasks
scpeters opened this issue May 9, 2023 · 9 comments
Open
17 of 29 tasks

Use cmake 3.22.1 features in Ionic #350

scpeters opened this issue May 9, 2023 · 9 comments
Labels
Breaking change Breaks API, ABI or behavior. Must target unstable version. enhancement New feature or request 🏛️ ionic Gazebo Ionic

Comments

@scpeters
Copy link
Member

scpeters commented May 9, 2023

Desired behavior

The next major release of gz-cmake will be supported on newer distributions with newer versions of cmake than version 3.10.2 that is currently used in gz-cmake3. We should identify which version of cmake we can target in order to use those new features.

Alternatives considered

Continue using cmake 3.10.2.

Implementation suggestion

Look into updating the following places where it is suggested that a new version of cmake will allow changes:

Additional context

@scpeters scpeters added enhancement New feature or request 🎵 harmonic Gazebo Harmonic labels May 9, 2023
@osrf-triage osrf-triage added this to Inbox in Core development May 9, 2023
@azeey azeey moved this from Inbox to To do in Core development May 10, 2023
@scpeters
Copy link
Member Author

@Bi0T1N
Copy link
Contributor

Bi0T1N commented May 17, 2023

A brief summary of additions can be found here. Simpler than checking all the release notes.

Here is an initial list:

  • FindPython (CMake 3.12 but got enhancements in almost each new release)
  • More support for generator expressions (CMake 3.16)
  • FindCUDAToolkit (CMake 3.17) (maybe more important for downstream AI projects or if the waves in gz-rendering are ported from OpenGL Shading Language)
  • Support for C++20 (CMake 3.12) and C++23 (CMake 3.20)
  • Colored messages based on message type (CMake 3.21)

@scpeters
Copy link
Member Author

since Harmonic has already dropped support for 20.04, I think we can target cmake 3.22.1 since that is in 22.04

scpeters added a commit that referenced this issue Nov 29, 2023
Part of #350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters
Copy link
Member Author

bumping the required cmake version in gz-cmake4 to 3.22.1 in #396

we can start using new features in follow-up pull requests

scpeters added a commit that referenced this issue Nov 29, 2023
Part of #350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters
Copy link
Member Author

having worked with some of the find_package(Python3) logic, I think we should just deprecate GzPython

@mjcarroll
Copy link
Contributor

having worked with some of the find_package(Python3) logic, I think we should just deprecate GzPython

I'm always in favor of less code!

@mjcarroll
Copy link
Contributor

Just a note that cmake_path can be used for path manipulation in 3.20+ and may tidy up code: https://cmake.org/cmake/help/latest/command/cmake_path.html

scpeters added a commit to gazebosim/gz-math that referenced this issue Apr 18, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Apr 18, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-rendering that referenced this issue Apr 18, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
iche033 pushed a commit to gazebosim/gz-rendering that referenced this issue Apr 18, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-math that referenced this issue Apr 18, 2024
* Enable GitHub workflow on Ubuntu Noble
* Require cmake version 3.22.1
  Part of gazebosim/gz-cmake#350.
* Remove old ruby cmake code
* Remove old python cmake code
  Also don't need to install python3-distutils anymore.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters scpeters added 🏛️ ionic Gazebo Ionic Breaking change Breaks API, ABI or behavior. Must target unstable version. and removed 🎵 harmonic Gazebo Harmonic labels Apr 18, 2024
scpeters added a commit to gazebosim/gz-math that referenced this issue Apr 19, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Apr 19, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-utils that referenced this issue Apr 22, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters
Copy link
Member Author

If we decide not to support Ubuntu 22.04 with Ionic, we could increase the required cmake version to 3.28.3:

scpeters added a commit to gazebosim/gz-math that referenced this issue May 22, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-plugin that referenced this issue May 24, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-plugin that referenced this issue May 24, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-msgs that referenced this issue May 25, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-msgs that referenced this issue May 25, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-transport that referenced this issue May 26, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-msgs that referenced this issue May 28, 2024
* Only run workflows on pull requests or release / main
  branches.
* Use checkout@v4.
* Require cmake version 3.22.1, remove old cmake code
  Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-transport that referenced this issue May 28, 2024
* Require cmake version 3.22.1, remove old cmake code
  Part of gazebosim/gz-cmake#350.
* No more special handling of PYTHON_DEBUG_LIBRARIES
* Remove distutils logic for cmake < 3.12

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-sim that referenced this issue May 29, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebosim/gz-sim that referenced this issue Jun 1, 2024
* Part of gazebosim/gz-cmake#350.
* Remove old cmake code
* Use Python3_EXECUTABLE, not GZ_PYTHON_EXECUTABLE
* Remove logic for skipping tests with old cmake

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters scpeters changed the title Use new cmake features in next major release Use cmake 3.22.1 features in Ionic Jun 3, 2024
@scpeters
Copy link
Member Author

scpeters commented Jun 4, 2024

I just noticed from What's new in cmake that the create_symlink command can now be used on Windows as of version 3.13:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking change Breaks API, ABI or behavior. Must target unstable version. enhancement New feature or request 🏛️ ionic Gazebo Ionic
Projects
Status: To do
Development

No branches or pull requests

3 participants