Skip to content

Conversation

@alireza-moayyedi
Copy link

Hi,

I wanted to use Cloudini in my project but not just the off the shelf topic converter node. I wanted to link directly against the libraries and use the available APIs in my source code. However, there were some issues that I had to fix:

  • pcl_ros has more exported dependencies than the system library PCL. And annoyingly, find_package(pcl_ros) overwrites exported dependencies that come with find_package(PCL). So if a downstream project (as in my case) is using only find_package(PCL) in their cmake then there will be target was not found errors for targets such as usblib::usblib. Since in any case only COMMON and IO components of the PCL are being used in Cloudini, I removed pcl_ros references to keep it more lightweight and avoid unnecessary dependencies in downstream packages (although this is more of pcl_ros overwriting issue, but well, thought it would be better in any case to keep things efficient).
  • Fixed cloudini_ros targets not being exported
    • ament_export_dependencies expects full package name so had to replace ${PLUGIN_DEPS} (as it includes targets) with the package names.

Some furthur improvements:

  • PCL already exports its libraries as targets so things like ${PCL_INCLUDE_DIRS} are no more necessary
  • Similarly, ament_export_include_directories or ament_export_libraries are also unnecessary as cloudini_ros now already exports targets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant