-
Notifications
You must be signed in to change notification settings - Fork 132
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
Support new target export template introduced with CMake 3.24 #395
Conversation
Signed-off-by: Timo Röhling <timo.roehling@fkie.fraunhofer.de>
Thank you for submitting a fix! I've confirmed that this does build. I would love to see this pulled into humble as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the change, this looks reasonable to me. I'm going to go ahead and run full CI on this.
The flaky test on Windows is well known, so going ahead and merging this (and backporting to stable distributions). |
@Mergifyio backport humble galactic foxy |
Signed-off-by: Timo Röhling <timo.roehling@fkie.fraunhofer.de> (cherry picked from commit ca8c26e)
Signed-off-by: Timo Röhling <timo.roehling@fkie.fraunhofer.de> (cherry picked from commit ca8c26e)
Signed-off-by: Timo Röhling <timo.roehling@fkie.fraunhofer.de> (cherry picked from commit ca8c26e)
✅ Backports have been created
|
May I request for a release in all distros please @clalancette ? |
I can't quite understand the reason why using custom messages are failing on Foxy, Galactic and Humble even they aren't using CMake > 3.24, but there are many recent issues ( Humble: Foxy: This started happening in one of my galactic CIs: https://github.com/ros-sports/soccer_interfaces/actions/runs/3333641352/jobs/5515776865 , and I can confirm that the changes in this PR does fix the failure (when i build ament_cmake from source in CI). I have been trying to make a minimal reproducible example (https://github.com/ijnek/reproduce_ament_cmake_395) but I haven't been able to reproduce it yet, or reproduce the issue locally on my computer in a container. Does anyone know what the changes were that broke the galactic builds? |
I mean, we can, but we really should figure out why it is happening in all distributions. By default, it shouldn't happen anywhere but on Windows (which ends up rolling forwards all the time). I suspect somewhere in setup-ros or action-ci-ros is installing a custom version of CMake, and it shouldn't do that. |
From the logs, the CMake version being installed does seem to be 3.16.3. 2022-10-27T00:47:57.1119909Z Setting up cmake (3.16.3-1ubuntu1) ... I understand that this is something for me to figure out, but I'm sort of stuck on this one. So if anyone else out there is experiencing something similar, I'd like to know! |
I was trying to build |
My issue was caused by Github's action runner manually installing CMake > 3.24, which I didn't notice due to cmake 3.16.3 also being installed side-by-side. I've written up an explanation on ROS Answers for this specific case and how to prevent being affected by such problems by using containers in Github Actions rather than running builds directly on the Github Action Runners. |
All right, thanks for tracking this down. The good news is that we'll be releasing this fix into Humble in the next patch release, soon-ish. Then we'll be able to handle CMake 3.24 on both Rolling and Humble. |
Foxy too? |
It doesn't look like we've backported it there, so no, not at the moment. Have we seen instances of the problem on Foxy? |
Oh, I looked too quickly. In the case of Foxy, that was backported and released back in September, so it should not be a problem anymore there. We backported and merged it to Galactic, but have not yet released it. Since this month will be the final patch release of Galactic, it should make it in there too. |
Great, thanks @clalancette ! |
The latest CMake 3.24 has tweaked its export template, so the regular expression in
ament_cmake_export_targets-extra.cmake
no longer matches. This PR relaxes the regex to match both the old and the new template.