Conversation
Ceres is referenced in fuse header files and the existing way it was being included in fuse_core did not export the include paths for Ceres which breaks downstream packages when they include fuse_core headers. This was only exposed through the per-package builds since the existing merged builds get lucky that all the include dirs are merged together.
svwilliams
left a comment
There was a problem hiding this comment.
I want to be really careful here. fuse is a public, open-source repo. I don't want to break anything for official builds of ROS1, end of life though it may be. Do these changes work with older versions of Ceres (2.0, 2.1, etc) and Ubuntu? Should I make a devel branch specific to Ubuntu Jammy and/or Noble?
@svwilliams I'm unsure about older versions. But at the high level I think fuse was flat out broken anyways regarding this. I guess everyone out there does The core issue is that ceres itself doesn't export the proper variables, or at least not Also, is this fork public? I don't see that it is... |
|
Also this bit specifically really is the correct way to do things: There are headers in fuse_core which reference ceres headers, so these need to be defined as public otherwise anything including the fuse_core header won't be able to find the ceres headers. I think the big question (even for me) is about pulling in the include directories in somewhat of a non-standard fashion (i.e. not simply using |
In case INTERFACE_INCLUDE_DIRS isn't a valid property we can revert back to the existing behavior when no include dirs are set.
Ceres is referenced in fuse header files and the existing way it was being included in fuse_core did not export the include paths for Ceres which breaks downstream packages when they include fuse_core headers.
This was only exposed through the per-package builds since the existing merged builds get lucky that all the include dirs are merged together.