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

Closed
26 of 29 tasks
scpeters opened this issue May 9, 2023 · 9 comments
Closed
26 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
@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)

@azeey azeey moved this to To do in Core development Jul 24, 2023
@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 <[email protected]>
@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
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
scpeters added a commit to gazebosim/gz-physics that referenced this issue Apr 18, 2024
scpeters added a commit to gazebosim/gz-rendering that referenced this issue Apr 18, 2024
iche033 pushed a commit to gazebosim/gz-rendering that referenced this issue Apr 18, 2024
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 <[email protected]>
@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
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
@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:

scpeters added a commit to gazebosim/gz-utils that referenced this issue Jul 29, 2024
scpeters added a commit to gazebosim/gz-common that referenced this issue Jul 29, 2024
azeey pushed a commit to gazebosim/gz-common that referenced this issue Jul 30, 2024
azeey added a commit to gazebosim/gz-utils that referenced this issue Jul 30, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <[email protected]>
Co-authored-by: Addisu Z. Taddese <[email protected]>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Jul 30, 2024
Part of gazebosim/gz-cmake#350.

Also fix push branch regex to support double digit
major versions.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Jul 30, 2024
* Part of gazebosim/gz-cmake#350.
* Fix push branch regex to support multi-digit versions.
* Fix README CI badges.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Jul 30, 2024
* Part of gazebosim/gz-cmake#350.
* Fix push branch regex to support multi-digit versions.
* Fix README CI badges.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-physics that referenced this issue Jul 31, 2024
* Part of gazebosim/gz-cmake#350.
* Fix push branch regex to support multi-digit versions.
* Fix README CI badges.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-rendering that referenced this issue Aug 14, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-rendering that referenced this issue Aug 14, 2024
* Part of gazebosim/gz-cmake#350.
* Fix push branch regex to support multi-digit versions.
* Fix README CI badges
* Remove logic for outdated cmake version
* Add packages-noble.apt for ogre-next-2.3, vulcan
* waves.cc: fix msvc warnings

Signed-off-by: Steve Peters <[email protected]>
Signed-off-by: Ian Chen <[email protected]>
Co-authored-by: Ian Chen <[email protected]>
scpeters added a commit to gazebosim/gz-fuel-tools that referenced this issue Aug 23, 2024
Part of gazebosim/gz-cmake#350.

Signed-off-by: Steve Peters <[email protected]>
scpeters added a commit to gazebosim/gz-fuel-tools that referenced this issue Aug 23, 2024
@github-project-automation github-project-automation bot moved this from To do to Done in Core development Oct 23, 2024
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
Archived in project
Development

No branches or pull requests

3 participants