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 ament_cmake to repalce mrt_cmake_modules #320

Closed

Conversation

felixf4xu
Copy link

Hi,

This is my attempt to replace mrt_cmake_modules by ament_cmake and standard cmake, which tries to fix #319

I'd like to see if this kind of PR is on the roadmap of this project.

I tested it locally with ros2 rolling, all local colcon test passed, but I'd like to see if it breaks any other tests.

Any comment is welcome.

@felixf4xu
Copy link
Author

@immel-f Hi, I'd like to check if you have any chance to review this PR.

if possible, I hope this PR can be merged to master, or merge to a new branch in this repo so that more people can test it.

@immel-f immel-f added the enhancement New feature or request label Sep 19, 2023
@immel-f
Copy link
Contributor

immel-f commented Sep 19, 2023

Thank you for your contribution! Please give us some time to review the pull request

@poggenhans
Copy link
Contributor

I appreciate effort you put into this, but to be honest, I don't understand what you are trying to achieve.

A little background: We started mrt_cmake_modules before ament existed and as a better version of catkin (albeit smaller) but with more build system support. If we were to reproduce all the features that we get from it with ament, we would have to write a lot of cmake code. As you can already see from the failing tests, it's not that easy.

mrt_cmake_modules gives us:

  • ROS1 support (with catkin)
  • ROS2 support (with ament)
  • conan support
  • code covarage metrics
  • a sane set of compiler warnings
  • clang-tidy linting
  • a wide support of boost versions (especially boost::python is very nasty across cmake/python/boost version combinations)
  • lean cmakelist.txt

And since it's released for all ros and ros2 versions, installing it basically comes for free via apt.

@felixf4xu
Copy link
Author

Thanks for the feedback.

A big problem of mrt_cmake_modules is that it's not standard and it's not used by other packages in ros2 world.

To me, more specifically, it does not support windows. I have a local working version of Lanelet2 on Windows, and I'd like to create more PRs when everything is ready, this PR is actually the first step.

Could you keep the PR open for a while? I'd like to check the failing testcases if it's environment issue or the package itself. I might leave ros1 issues as they are and focus on humble and forward.

@poggenhans
Copy link
Contributor

A big problem of mrt_cmake_modules is that it's not standard and it's not used by other packages in ros2 world.

Well that's not a showstopper. It is built on top of ament, catkin, conan and cmake, and these are standard tools. Think of it as all the cmake code we would have to write to offer all the features I enumerated above, just moved into a separate project.

To me, more specifically, it does not support windows

Well that's a different thing. If you need that, why don't you implement that support on the mrt_cmake_modules end? I guess you would only need to fix a few system calls here and there. But keep in mind we will most likely never officially support Windows. We won't be able to provide the extra maintenance effort.

@felixf4xu
Copy link
Author

this PR is closed.
(if anyone is interested in a Windows/cmake version, I have a fork at https://github.com/felixf4xu/Lanelet2-cmake-windows)

@felixf4xu felixf4xu closed this Oct 9, 2023
@felixf4xu felixf4xu deleted the ament-cmake branch July 10, 2024 04:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove dependency of mrt_cmake_modules
3 participants