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

Using rosidl_target_interfaces incompatible with keyword target_link_libraries command #400

Open
jdlangs opened this issue Aug 16, 2019 · 9 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@jdlangs
Copy link

jdlangs commented Aug 16, 2019

Bug report

Required Info:

  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • Binaries
  • Version or commit hash:
    • ros-dashing-rosidl-cmake 0.7.5-1bionic.20190801.140923
  • DDS implementation:
    • FastRTPS

Similar to the problem I previous encountered with ament_target_dependencies, the rosidl_target_interfaces macro calls target_link_libraries with the non-keyword format, which is incompatible with additional calls that do use the keyword format on the same target.

That issue was resolved by adding an optional keyword form to ament_target_dependencies. Could the same thing be done here for rosidl_target_interfaces?

@ivanpauno ivanpauno added the bug Something isn't working label Aug 16, 2019
@ivanpauno
Copy link
Member

That issue was resolved by adding an optional keyword form to ament_target_dependencies. Could the same thing be done here for rosidl_target_interfaces?

Sounds reasonable. Are you planning to open a PR with the fix?

@jdlangs
Copy link
Author

jdlangs commented Aug 19, 2019

I'll aim to put an initial attempt together sometime this week. If anyone else sees this though and there's been no activity, you can safely assume I haven't started working on it yet and you're welcome to take a stab at it.

@ivanpauno ivanpauno added enhancement New feature or request and removed bug Something isn't working labels Aug 20, 2019
@dirk-thomas
Copy link
Member

@jdlangs Any update on this?

@prajd3d
Copy link

prajd3d commented Apr 26, 2021

I just hit this issue. And, if anyone needed a immediate workaround, here is what I did.
A temporary work around is to move the messages to a separate package (e.g., my_msgs).
And, reference my_msgs in the current package.

@clalancette clalancette added the help wanted Extra attention is needed label May 13, 2021
@estellearrc
Copy link

Any update for this issue?

@ivanpauno
Copy link
Member

Any update for this issue?

The issue is tagged as help wanted, i.e. it's open to contributions.
You would need to implement something similar to ament/ament_cmake#161.

@EricCousineau-TRI
Copy link

EricCousineau-TRI commented Oct 18, 2022

As an alternative, why not declare a Modern CMake target that would make rosidl_target_interfaces moot? e.g.

target_link_libraries(my_thing PUBLIC
   geometry_msgs::targets
)

In things like RobotLocomotion/drake-ros#153, I see thus usage of ${geometry_msgs_TARGETS}.

I believe this may connect w/ @sloretz's points in ament/ament_cmake#292
\cc @IanTheEngineer

@clalancette
Copy link
Contributor

As an alternative, why not declare a Modern CMake target that would make rosidl_target_interfaces moot?

That's the eventual goal. I swear I remember us trying and failing to do this for Humble (as part of ros2/ros2#1150), but I can't find the relevant PRs right now. Maybe @sloretz remembers working on this and can find the relevant PRs.

@EricCousineau-TRI
Copy link

Ah, gotcha. Yeah, knowing the correct modern target would be great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

7 participants