Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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_roshas more exported dependencies than the system libraryPCL. And annoyingly,find_package(pcl_ros)overwrites exported dependencies that come withfind_package(PCL). So if a downstream project (as in my case) is using onlyfind_package(PCL)in their cmake then there will betarget was not founderrors for targets such asusblib::usblib. Since in any case onlyCOMMONandIOcomponents of thePCLare being used in Cloudini, I removedpcl_rosreferences to keep it more lightweight and avoid unnecessary dependencies in downstream packages (although this is more ofpcl_rosoverwriting issue, but well, thought it would be better in any case to keep things efficient).cloudini_rostargets not being exportedament_export_dependenciesexpects full package name so had to replace${PLUGIN_DEPS}(as it includes targets) with the package names.Some furthur improvements:
PCLalready exports its libraries as targets so things like${PCL_INCLUDE_DIRS}are no more necessaryament_export_include_directoriesorament_export_librariesare also unnecessary ascloudini_rosnow already exports targets.