The catkin package has got a runtime dependency to cmake, make,
gcc and other build utilities. These dependencies, however, are
only needed if it is desired to build with catkin on the target
board. If we do not want to build on the target board, i.e., if
we just want to use ros tools like roslaunch, only a small part
of catkin (i.e., the corresponding python packages) is required
to be deployed on the target board.
Therefore, we introduce a new package called catkin-runtime.
It installs only the python packages that are required for
the ros tools to run. The roslib package now depends on
catkin-runtime (previously: catkin).
I also tried an alternative approach which just modifies catkin.bb:
- add a catkin-runtime package
- move PYTHON_SITEPACKAGES_DIR from FILES_catkin to FILES_CATKIN_RUNTIME
- make catkin_runtime RDEPEND on the python stuff
- make catkin RDEPEND on the cmake, binutils, ..., + catkin-runtime
With this setup, for some reason, bitbake thinks that
catkin-runtime still RDEPENDS on binutils. Therefore, I split up
the catkin recipe into two different recipes. Here, the
RDEPENDS are managed correctly.
If we want to deploy catkin as a build tool on the board, we can
simply add a runtime dependency to catkin. However, this should
not be the default setup.
Special thanks go to Tobias Henkel (tobias.henkel@bmw-carit.de)
who deserves most of the credits for this patch.
Signed-off-by: Andreas Baak <andreas.baak@bmw-carit.de>
Following standard convention, place ROS/Catkin packages under the
prefix /opt/ros/${ROSDISTRO} (exported as ${ros_prefix}) rather than in
the usual ${prefix}.
The native packages are not required anymore, because the needed
python scripts during compile time are also provided by the
cross-compiled packages and the python scripts are platform
independent. Only the catkin package is provided as native package.
The new definition was the original intention, and the originally
wrong definition happened to slip in.
Initial commit and discussion about the intention is in commit
c6837ecbf8.
In the topic-tools recipe, a QA error was raised as the .debug files were put
into the main package. By adding this line in the catkin class, the files are
now placed in the dbg package.
The CMake generate_messages function from the genmsg package
detects the installed message generators via files in the
/usr/etc/ros/genmsg directory. Stage the /usr/etc directory
manually as it is not a common path.
Fixed#50
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Add additonal file entries with standard ros paths to fix the following warnings:
WARNING: QA Issue: std-msgs: Files/directories were installed but not shipped
/usr/share/std_msgs/msg
WARNING: QA Issue: rosconsole: Files/directories were installed but not shipped
/usr/share/ros/config/rosconsole.config
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Build catkin packages out of tree as this is the default of ros and
makes it simple to identify build paths.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Remove all ${BPN} file entries as catkin packages always use
underlines instead of hyphens.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>