Merge pull request #286 from housel/relocate-to-opt-ros-rosdistro

relocate ROS packages to /opt/ros/${ROSDISTRO} (resolves #214)
This commit is contained in:
Lukas Bulwahn 2014-08-15 15:01:06 +02:00
commit bda407b2f3
10 changed files with 75 additions and 14 deletions

View File

@ -126,10 +126,13 @@ Currently, this layer is still under continuous development.
to the /etc/hosts file, and set up the environment with
export ROS_ROOT=/usr
export ROS_ROOT=/opt/ros/hydro
export PATH=$PATH:/opt/ros/hydro/bin
export LD_LIBRARY_PATH=/opt/ros/hydro/lib
export PYTHONPATH=/opt/ros/hydro/lib/python2.7/site-packages
export ROS_MASTER_URI=http://localhost:11311
export CMAKE_PREFIX_PATH=/usr
touch /usr/.catkin
export CMAKE_PREFIX_PATH=/opt/ros/hydro
touch /opt/ros/hydro/.catkin
Finally, you can start roscore with

View File

@ -7,11 +7,13 @@ inherit cmake distutils-base ros faulty-solibs
DEPENDS_prepend = "${@['catkin-native ', ''][d.getVar('BPN', True) == 'catkin']}"
EXTRA_OECMAKE_CATKIN = "\
-DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}/usr;${STAGING_DIR_NATIVE}/usr' \
-DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix};${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \
-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \
"
EXTRA_OECMAKE_CATKIN_class-native = "\
-DCMAKE_PREFIX_PATH=${STAGING_DIR_NATIVE}/usr \
-DCMAKE_PREFIX_PATH='${ros_prefix}' \
-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \
-DRT_LIBRARY=${libdir_native} \
"
@ -29,7 +31,6 @@ export BUILD_SYS
export HOST_SYS
SYSROOT_PREPROCESS_FUNCS += "catkin_sysroot_preprocess"
catkin_sysroot_preprocess () {
sysroot_stage_dir ${D}${prefix}/etc ${SYSROOT_DESTDIR}${prefix}/etc
sysroot_stage_dir ${D}${ros_sysconfdir} ${SYSROOT_DESTDIR}${ros_sysconfdir}
}

View File

@ -7,20 +7,55 @@ ROS_BPN = "${@d.getVar('BPN', True).replace('-', '_')}"
ROS_SPN ?= "${ROS_BPN}"
ROS_SP = "${ROS_SPN}-${PV}"
export ros_prefix = "/opt/ros/${ROSDISTRO}"
ros_prefix_virtclass-native = "${STAGING_DIR_NATIVE}/opt/ros/${ROSDISTRO}"
export ros_bindir = "${ros_prefix}/bin"
export ros_libdir = "${ros_prefix}/${baselib}"
export ros_libexecdir = "${ros_libdir}/${ROS_BPN}"
export ros_includedir = "${ros_prefix}/include"
export ros_datadir = "${ros_prefix}/share"
export ros_sysconfdir = "${ros_prefix}/etc"
export ros_stacksdir = "${ros_prefix}/stacks"
PREPROCESS_RELOCATE_DIRS += " \
${ros_bindir} \
${ros_libdir} \
"
PKG_CONFIG_PATH .= ":${PKG_CONFIG_DIR}:${STAGING_DIR_HOST}${ros_libdir}/pkgconfig:${STAGING_DATADIR}/pkgconfig"
PYTHON_SITEPACKAGES_DIR = "${ros_libdir}/${PYTHON_DIR}/site-packages"
export PYTHONPATH = "${STAGING_DIR_NATIVE}${PYTHON_SITEPACKAGES_DIR}"
PYTHONPATH_virtclass-native = "${PYTHON_SITEPACKAGES_DIR}"
FILES_${PN} += "\
${prefix}/etc \
${datadir}/ros/config/${ROS_BPN}.config \
${datadir}/ros/core/${ROS_BPN} \
${datadir}/${ROS_BPN} \
${ros_bindir}/* ${ros_libexecdir}/* ${ros_libdir}/lib*.so \
${PYTHON_SITEPACKAGES_DIR} \
${ros_datadir} \
${ros_sysconfdir} \
${ros_stacksdir} \
"
FILES_${PN}-dev += "\
${ros_includedir} \
${ros_libdir}/pkgconfig \
${PYTHON_SITEPACKAGES_DIR}/*.la \
${ros_datadir}/${ROS_BPN}/cmake \
${datadir}/${ROS_BPN}/cmake \
${datadir}/${ROS_BPN}/*.template \
"
FILES_${PN}-dbg += "\
${libdir}/${ROS_BPN}/.debug/* \
${ros_bindir}/.debug ${ros_libexecdir}/.debug ${ros_libdir}/.debug \
${ros_datadir}/*/bin/.debug \
${PYTHON_SITEPACKAGES_DIR}/.debug \
${PYTHON_SITEPACKAGES_DIR}/*/.debug \
${PYTHON_SITEPACKAGES_DIR}/*/*/.debug \
"
FILES_${PN}-staticdev += "\
${ros_libdir}/*.a \
${ros_libdir}/${BPN}/*.a \
"
PACKAGES += "${PN}-commonlisp"
@ -28,3 +63,19 @@ PACKAGES += "${PN}-commonlisp"
FILES_${PN}-commonlisp += " \
${datadir}/common-lisp/ \
"
SYSROOT_PREPROCESS_FUNCS += "ros_sysroot_preprocess"
ros_sysroot_preprocess () {
sysroot_stage_dir ${D}${ros_includedir} ${SYSROOT_DESTDIR}${ros_includedir}
if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
sysroot_stage_dir ${D}${ros_bindir} ${SYSROOT_DESTDIR}${ros_bindir}
sysroot_stage_dir ${D}${ros_sysconfdir} ${SYSROOT_DESTDIR}${ros_sysconfdir}
fi
if [ -d ${D}${ros_libdir} ]; then
sysroot_stage_libdir ${D}${ros_libdir} ${SYSROOT_DESTDIR}${ros_libdir}
fi
sysroot_stage_dir ${D}${ros_datadir} ${SYSROOT_DESTDIR}${ros_datadir}
if [ -d ${D}${ros_stacksdir} ]; then
sysroot_stage_dir ${D}${ros_stacksdir} ${SYSROOT_DESTDIR}${ros_stacksdir}
fi
}

View File

@ -9,3 +9,5 @@ BBFILE_PATTERN_ros-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_ros-layer = "7"
LICENSE_PATH += "${LAYERDIR}/licenses"
ROSDISTRO := "hydro"

View File

@ -5,4 +5,8 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=14;endline=14;md5=d566ef916e9de
DEPENDS = "rospy tf2"
EXTRA_OECMAKE += "\
-DCMAKE_SKIP_RPATH=ON \
"
require geometry-experimental.inc

View File

@ -1,6 +1,6 @@
SRC_URI = "https://github.com/bmwcarit/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
SRC_URI[md5sum] = "8fbf5ff2bd671584da27272d45e11bc9"
SRC_URI[sha256sum] = "0b36c6ee0035ab8c5c5e048d6a66bd83a55bcfe1d8ec6150fa8e62cab9fc4c4d"
SRC_URI[md5sum] = "350c87a343c6657bc1516b4c7437a6c0"
SRC_URI[sha256sum] = "2c6f17e4f84ef0f9663d0ced05417501dc770961951e4cd13871b75adbb8c72a"
S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"