Headers installed at include/dds
Ubuntu 18.04 ros-dashing-cyclonedds/bionic,now 0.1.0-1bionic.20190829.220209 amd64
CycloneDDS installs some of its headers at /opt/ros/dashing/include/dds. This makes it unclear what package these headers belong to.
It also prevent building TwinOaks CoreDX which also has a header at include/dds/dds.h. At compile time, this collision prevents CoreDX from building if you have installed ros-dashing-cyclonedds.
@rotu That's a nasty little gotcha ...
It would be a little tricky to rename/move these header files because of other (non-ROS2) users of Cyclone DDS. I'm open to doing that, but I can't do it without a transition period in which the old names remain available. I'm pretty sure the same is true for @ClarkTucker ...
What might work is to install Cyclone under, e.g., /opt/ros/dashing/cyclonedds. The thing I'm worried about is that it could mess up library paths — and not knowing the packaging system, I don't know if it would be possible to rework the ros-dashing-cyclonedds package to do a soft link from /opt/ros/dashing/lib/libddsc.so to /opt/ros/dashing/cyclonedds/lib/libddsc.so. @cottsay, perhaps you have an idea?
@eboasson see https://github.com/eclipse-cyclonedds/cyclonedds/pull/284
It generates stub headers at build time so that #include "dds/..." still works but throws a build-time warning. Do you think this is a viable solution? If so, I can apply it to the rest of the codebase.
@rotu, my initial thought is that this is a very reasonable approach. I'd say everything under dds/ should then be moved, and I think the ddsc directory could then be handled in the same way — or perhaps it is simply time to delete that one.
I noticed the build failures were all caused by a "treat all warnings as errors", so that's understandable and something I'm sure we can deal with.
I'm 100% on board, and planning no moving the entire dds folder.
And yeah, the build failures should not happen. That just means I missed something. I'll make it all happen in one PR.