meta-ros/v1-recipes-ros1/catkin/catkin_0.6.19.bb

41 lines
1.3 KiB
BlitzBasic
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
require catkin.inc
2013-01-08 21:08:29 +08:00
2017-06-03 14:17:33 +08:00
SRC_URI += "file://environment.d-catkin.sh"
DEPENDS_class-native += "catkin-runtime"
# The files in ${PYTHON_SITEPACKAGES_DIR} and catkin_find are
# installed by the catkin-runtime package. Therefore, we remove
# them here so that they are not installed.
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
# Moreover: the ${ros_libdir}/python2.7 is empty. We need to
# remove it, otherwise the QA error [installed-vs-shipped] will hit on us.
FILES_${PN} = "\
${ros_bindir}/catkin_*_* \
${ros_bindir}/catkin_make \
${ros_libdir}/pkgconfig \
${ros_datadir} \
${ros_sysconfdir} \
${ros_stackdir} \
"
FILES_${PN}-dev = ""
RDEPENDS_${PN}_class-native = "${PYTHON_PN}-catkin-pkg"
RDEPENDS_${PN} = "cmake make binutils binutils-symlinks gcc gcc-symlinks g++ g++-symlinks \
catkin-runtime ${PYTHON_PN}-empy"
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
do_install_append() {
rm ${D}${ros_bindir}/catkin_find
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
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}
rmdir ${D}${ros_libdir}/${PYTHON_DIR}
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
}
2017-06-03 14:17:33 +08:00
# Append environment hook for SDK
do_install_append_class-nativesdk() {
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
install -m 644 ${WORKDIR}/environment.d-catkin.sh ${D}${SDKPATHNATIVE}/environment-setup.d/catkin.sh
}
FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
BBCLASSEXTEND += "native nativesdk"