I'm using the catkin plugin for snapcraft. I'm using it in a ros workspace of multiple packages as required. This workspace builds with catkin tools.
However when using snapcraft, the build fails to find a header file that is supposed to be shared between local packages using the catkin_package() declaration in CMakeLists.txt
are there any known reasons why this would fail. As this has occurred for a number of header files referenced between packages using catkin
This is mentioned in both the ROS docs on snapcraft.io as well as the snap tutorial on wiki.ros.org, although I've proposed the following clarification to the former:
Most ROS developers run out of the
devel
space. As a result, it's easy to forget the importance of good install rules, i.e. rules for installing every component of the package necessary to run, or every component necessary to use a given library. The Catkin packages you're building must have good install rules, or Snapcraft won't know which components to place into the snap. Make sure you install binaries, libraries, header files, launch files, etc.
The same goes for any packaging method. You must have good install rules.