meta-ros/recipes-ros/catkin/catkin.inc

28 lines
980 B
PHP
Raw Normal View History

catkin: split up catkin in order to reduce runtime dependencies 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>
2015-03-02 19:59:52 +08:00
DESCRIPTION = "Low-level build system macros and infrastructure for ROS"
SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "cmake python-empy python-catkin-pkg python-empy-native python-catkin-pkg-native"
SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
2014-12-08 15:44:07 +08:00
SRC_URI[md5sum] = "e6d1090589026746c94d8fae78015167"
SRC_URI[sha256sum] = "0ca265803be8a2c1b6036d67ed63505551f4bbc02fa6cb8180dc3167b9f3afc9"
catkin: split up catkin in order to reduce runtime dependencies 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>
2015-03-02 19:59:52 +08:00
catkin: including root path in library search (addresses #291) On the meta-ros issue tracker, the issue #291 reports a linking problem with rosconsole if ROS Hydro is also installed on the host system. Kristof investigated in that, and published a patch [1] on September 27th, 2014, which resolved the rosconsole issue, but showed issues with urdfdom. After reading through the discussion of issue #291, I started initial testing with Kristof's patch. After testing Kristof's patch, I also investigated the urdfdom problem, and came up with the solution to revert the part of his patch, which moved `-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}'` to ros.bbclass. Initially, I believed that the issue that was addressed with the second part of Kristof's patch, has been resolved with commit 7e2eb25e515efb2cadf570f7db9b044f9da5c424. However, the issue remains, but is only reproducible with the Ubuntu saucy distribution. On my first local setup, I could reproduce the issue #291 with rosconsole on commit 47eab4263c26a15e8dd336001fec914ab128d633. After applying this commit, the issue with rosconsole did not occur anymore on a clean fresh build. `bitbake packagegroup-ros-world` did not show any other further issues. On my second local setup, on a newly-installed Ubuntu 12.04 (precise) system, I checked that the proposed commit resolves some linking problems to boost, with some latest OpenEmbedded-Core repository and the poky-dizzy distribution. A detailed report of the investigation of this second local setup is at my Github Gist [2]. In the first review of the pull request #318, Kristof noticed that on an Ubuntu 13.10 (saucy), an issue with message-filters still occurs. I could not reproduce this and other reported errors on the Ubuntu 12.04 system, so I believe certain errors only appear on certain Ubuntu distributions, which makes them difficult to pinpoint. Therefore, we decided to defer the resolution of this problem with Ubuntu 13.10. To adjust to the concurrent work in pull request #319, during the rebasing, the patch has been moved from the catkin directory to the files directory. Kristof remains the author of the applied patch, as I have not modified the patch. I have put myself as this author's commit, as I take the responsibility of the modifications compared to Kristof's original work and I have tested this commit in my test setting. [1] https://github.com/KristofRobot/meta-ros/commit/9ff76ffb7a5aaa076a89a378e92d41adbfeb9b38 [2] https://gist.github.com/bulwahn/a8d5b7c27550b399f866 Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de> catkin: move to files directory (fixup)
2015-02-23 14:36:46 +08:00
SRC_URI += "file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch\
file://0002-PKG_CONFIG_LIB_PATHS-use-cmake-root-path.patch"
catkin: split up catkin in order to reduce runtime dependencies 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>
2015-03-02 19:59:52 +08:00
inherit catkin
FILES_${PN}-dev += "\
${ros_datadir}/eigen/cmake \
${ros_datadir}/ros/cmake \
${ros_datadir}/.catkin \
${ros_prefix}/.catkin \
${ros_prefix}/.rosinstall \
${ros_prefix}/_setup_util.py \
${ros_prefix}/env.sh \
${ros_prefix}/setup.* \
"