Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

ament_cmake: Confused about ament_export_dependencies and ament_export_interfaces

I'm programming on ROS2 Dashing and trying to port some packages, but the ament_cmake docs haven't answered my questions

What does ament_export_dependencies(my_target ...) actually do? Why is it needed if I already declared my dependencies with ament_target_dependencies(my_target ...) or target_link_libraries(my_target PUBLIC ...)?

Finally, why do I hardly see ament_export_interfaces(${PROJECT_NAME} HAS_LIBRARY_TARGET) in the ROS2 codebase if that's the recommended way to expose library projects for downstream consumption?