This requires client packages to find_package(ifm3d) and target_link_libraries(... ifm3d::camera ifm3d::framegrabber ifm3d::image) or else ensure ifm3d is on the include path when building packages which consume ifm3d-ros2.
The implementation details (the ifm3d bits) should be hidden via pImpl to keep the public interface ROS-only.
ifm3d
library headers are unnecessarily exposed to clients throughcamera_node.hpp
here: https://github.com/ifm/ifm3d-ros2/blob/c281b5e3e37dd337e99e9d516749764f8d1f7dc6/include/ifm3d_ros2/camera_node.hpp#L39This requires client packages to
find_package(ifm3d)
andtarget_link_libraries(... ifm3d::camera ifm3d::framegrabber ifm3d::image)
or else ensureifm3d
is on the include path when building packages which consumeifm3d-ros2
.The implementation details (the
ifm3d
bits) should be hidden viapImpl
to keep the public interface ROS-only.