Merge pull request #590 from bulwahn/rebased-pull-request-519
support nativesdk (refurnished #519)
This commit is contained in:
commit
8a9faf90c6
|
@ -6,17 +6,29 @@ ROS_USE_PYTHON3 ??= "no"
|
||||||
|
|
||||||
inherit cmake ${@'distutils3-base' if bb.utils.to_boolean(d.getVar('ROS_USE_PYTHON3', True)) else 'distutils-base'} ros faulty-solibs
|
inherit cmake ${@'distutils3-base' if bb.utils.to_boolean(d.getVar('ROS_USE_PYTHON3', True)) else 'distutils-base'} ros faulty-solibs
|
||||||
|
|
||||||
DEPENDS_prepend = "${@'' if (d.getVar('BPN', True) == 'catkin') or (d.getVar('BPN', True) == 'catkin-runtime') else 'catkin-native '}"
|
# Prepend build dependency on "catkin-runtime" and "catkin-native"
|
||||||
|
# if the package is not "catkin" or "catkin-runtime"
|
||||||
|
DEPENDS =+ "${@'' if d.getVar('BPN', True) in ('catkin', 'catkin-runtime') else 'catkin-runtime catkin-native'}"
|
||||||
|
|
||||||
|
# Prepend run dependency on "catkin-runtime" for base packages
|
||||||
|
# if the package is not "catkin" or "catkin-runtime"
|
||||||
|
RDEPENDS_${PN} =+ "${@'' if d.getVar('BPN', True) in ('catkin', 'catkin-runtime') else 'catkin-runtime'}"
|
||||||
|
|
||||||
|
# Prepend run dependency on "catkin" for dev packages
|
||||||
|
# if the package is not "catkin" or "catkin-runtime"
|
||||||
|
RDEPENDS_${PN}-dev =+ "${@'' if d.getVar('BPN', True) in ('catkin', 'catkin-runtime') else 'catkin'}"
|
||||||
|
|
||||||
EXTRA_OECMAKE_CATKIN = "\
|
EXTRA_OECMAKE_CATKIN = "\
|
||||||
-DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix};${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \
|
-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}' \
|
-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \
|
||||||
|
-DCATKIN_DEVEL_PREFIX='${WORKDIR}/devel' \
|
||||||
"
|
"
|
||||||
|
|
||||||
EXTRA_OECMAKE_CATKIN_class-native = "\
|
EXTRA_OECMAKE_CATKIN_class-native = "\
|
||||||
-DCMAKE_PREFIX_PATH='${ros_prefix}' \
|
-DCMAKE_PREFIX_PATH='${STAGING_DIR_NATIVE}${ros_prefix}' \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \
|
-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \
|
||||||
-DRT_LIBRARY=${libdir_native} \
|
-DRT_LIBRARY=${libdir_native} \
|
||||||
|
-DCATKIN_DEVEL_PREFIX='${WORKDIR}/devel' \
|
||||||
"
|
"
|
||||||
|
|
||||||
EXTRA_OECMAKE_prepend = "\
|
EXTRA_OECMAKE_prepend = "\
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
DESCRIPTION = "Image for testing meta-ros' SDK feature"
|
||||||
|
|
||||||
|
IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}"
|
||||||
|
|
||||||
|
inherit core-image
|
||||||
|
|
||||||
|
IMAGE_ROOTFS_SIZE = "8192"
|
||||||
|
|
||||||
|
IMAGE_INSTALL += "sshd roslaunch rostopic roscpp-dev std-msgs-dev"
|
||||||
|
|
||||||
|
TOOLCHAIN_HOST_TASK += "nativesdk-cmake nativesdk-catkin"
|
|
@ -0,0 +1 @@
|
||||||
|
FILES_${PN}-dev_class-nativesdk = ""
|
|
@ -9,4 +9,7 @@ SRC_URI[sha256sum] = "d4d069eaeb29d6a9ee71773b20c41515b6e0feb9ea2765ebaf3e599d0c
|
||||||
|
|
||||||
inherit pypi
|
inherit pypi
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
RDEPENDS_${PN} = "${PYTHON_PN}-unixadmin"
|
||||||
|
RDEPENDS_${PN}_class-native = ""
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
|
@ -10,4 +10,4 @@ SRC_URI[sha256sum] = "99f016af2770c48ab57a65df7aae251360dc69a1514c15851458a71d4d
|
||||||
|
|
||||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
|
@ -11,6 +11,10 @@ do_install_append() {
|
||||||
# remove sysroot library path from pkgconfig files
|
# remove sysroot library path from pkgconfig files
|
||||||
sed -i -e 's#${STAGING_INCDIR}#${includedir}#g' \
|
sed -i -e 's#${STAGING_INCDIR}#${includedir}#g' \
|
||||||
${D}${libdir}/pkgconfig/*.pc
|
${D}${libdir}/pkgconfig/*.pc
|
||||||
|
|
||||||
|
# remove sysroot library path from cmake config files
|
||||||
|
sed -i -e 's#${STAGING_DIR_TARGET}##g' \
|
||||||
|
${D}${datadir}/orocos_kdl/*.cmake
|
||||||
}
|
}
|
||||||
|
|
||||||
FILES_${PN}-dev += "${datadir}/orocos_kdl/*"
|
FILES_${PN}-dev += "${datadir}/orocos_kdl/*"
|
||||||
|
|
|
@ -15,3 +15,9 @@ inherit cmake
|
||||||
|
|
||||||
# CXXFLAGS are needed to compile eigen 3.3.1 headers properly
|
# CXXFLAGS are needed to compile eigen 3.3.1 headers properly
|
||||||
CXXFLAGS += "-Wno-deprecated-declarations -Wno-misleading-indentation -Wno-int-in-bool-context -Wno-ignored-attributes"
|
CXXFLAGS += "-Wno-deprecated-declarations -Wno-misleading-indentation -Wno-int-in-bool-context -Wno-ignored-attributes"
|
||||||
|
|
||||||
|
do_install_append() {
|
||||||
|
# remove sysroot library path from cmake config files
|
||||||
|
sed -i -e 's#${STAGING_DIR_TARGET}##g' \
|
||||||
|
${D}${datadir}/sophus/*.cmake
|
||||||
|
}
|
||||||
|
|
|
@ -11,13 +11,14 @@ S = "${WORKDIR}/catkin-${PV}"
|
||||||
# This package includes ONLY the python packages AND catkin_find
|
# This package includes ONLY the python packages AND catkin_find
|
||||||
# The catkin_${PV} package includes all other files
|
# The catkin_${PV} package includes all other files
|
||||||
# from the catkin tool.
|
# from the catkin tool.
|
||||||
FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR} ${ros_bindir}/catkin_find"
|
FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR} ${ros_bindir}/catkin_find ${ros_prefix}/.catkin"
|
||||||
|
FILES_${PN}-dev = ""
|
||||||
|
|
||||||
RDEPENDS_${PN}_class-native = ""
|
RDEPENDS_${PN}_class-native = ""
|
||||||
RDEPENDS_${PN} = "\
|
RDEPENDS_${PN} = "\
|
||||||
${PYTHON_PN}-catkin-pkg ${PYTHON_PN}-misc ${PYTHON_PN}-multiprocessing \
|
${PYTHON_PN}-catkin-pkg ${PYTHON_PN}-misc ${PYTHON_PN}-multiprocessing \
|
||||||
${PYTHON_PN}-shell ${PYTHON_PN}-xml ${PYTHON_PN}-pkgutil \
|
${PYTHON_PN}-shell ${PYTHON_PN}-xml ${PYTHON_PN}-pkgutil \
|
||||||
${@'python-argparse python-subprocess' if d.getVar('PYTHON_PN', True) == 'python2' else ''}"
|
${@'python-argparse python-subprocess' if d.getVar('PYTHON_PN', True) == 'python' else ''}"
|
||||||
|
|
||||||
# Delete everything but the python packages in order to avoid
|
# Delete everything but the python packages in order to avoid
|
||||||
# that the QA error [installed-vs-shipped] hits on us.
|
# that the QA error [installed-vs-shipped] hits on us.
|
||||||
|
@ -26,6 +27,27 @@ do_install_append() {
|
||||||
rm ${D}${ros_bindir}/catkin_make
|
rm ${D}${ros_bindir}/catkin_make
|
||||||
rm -rf ${D}${ros_datadir}
|
rm -rf ${D}${ros_datadir}
|
||||||
rm -rf ${D}${ros_libdir}/pkgconfig
|
rm -rf ${D}${ros_libdir}/pkgconfig
|
||||||
|
|
||||||
|
# Manually add the marker file
|
||||||
|
touch ${D}${ros_prefix}/.catkin
|
||||||
}
|
}
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
# Append environment hook for SDK
|
||||||
|
do_install_append_class-nativesdk() {
|
||||||
|
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
|
||||||
|
|
||||||
|
script=${D}${SDKPATHNATIVE}/environment-setup.d/catkin-runtime.sh
|
||||||
|
echo "export ROSDISTRO=${ROSDISTRO}" >> $script
|
||||||
|
echo "export PATH=\$PATH:\${OECORE_NATIVE_SYSROOT}/opt/ros/\${ROSDISTRO}/bin" >> $script
|
||||||
|
echo "export PYTHONPATH=\${OECORE_NATIVE_SYSROOT}/opt/ros/\${ROSDISTRO}/lib/python2.7/site-packages" >> $script
|
||||||
|
echo "export ROS_ROOT=\${OECORE_TARGET_SYSROOT}/opt/ros/\${ROSDISTRO}/share/ros" >> $script
|
||||||
|
echo "export CMAKE_PREFIX_PATH=\${OECORE_TARGET_SYSROOT}/opt/ros/\${ROSDISTRO}:\${OECORE_NATIVE_SYSROOT}/opt/ros/${ROSDISTRO}" >> $script
|
||||||
|
}
|
||||||
|
|
||||||
|
FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
|
||||||
|
|
||||||
|
catkin_sysroot_preprocess_append() {
|
||||||
|
install -m 644 -t ${SYSROOT_DESTDIR}${ros_prefix} ${D}${ros_prefix}/.catkin
|
||||||
|
}
|
||||||
|
|
||||||
|
BBCLASSEXTEND += "native nativesdk"
|
||||||
|
|
|
@ -10,23 +10,9 @@ SRC_URI[md5sum] = "d58460cc9112812d8c4e6ecf98bbcc85"
|
||||||
SRC_URI[sha256sum] = "90a639d67db7f9039487af555e432a5b4b6e339f22892d75d03b823b3f38c947"
|
SRC_URI[sha256sum] = "90a639d67db7f9039487af555e432a5b4b6e339f22892d75d03b823b3f38c947"
|
||||||
|
|
||||||
SRC_URI += "\
|
SRC_URI += "\
|
||||||
file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch \
|
|
||||||
file://0001-use-python-provided-by-environment-instead-of-the-ge.patch \
|
file://0001-use-python-provided-by-environment-instead-of-the-ge.patch \
|
||||||
file://0001-avoid-using-host-s-paths-when-cross-compiling.patch \
|
file://0001-allow-proper-cross-compilation-with-catkin.patch \
|
||||||
file://0001-relocate-dependency-s-headers-to-current-sysroot.patch \
|
|
||||||
${@'file://0001-python.cmake-look-for-python3-first.patch' if d.getVar('PYTHON_PN', True) == 'python3' else ''} \
|
${@'file://0001-python.cmake-look-for-python3-first.patch' if d.getVar('PYTHON_PN', True) == 'python3' else ''} \
|
||||||
"
|
"
|
||||||
|
|
||||||
inherit catkin
|
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.* \
|
|
||||||
"
|
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,40 @@
|
||||||
require catkin.inc
|
require catkin.inc
|
||||||
|
|
||||||
DEPENDS_class-native += "catkin-runtime"
|
SRC_URI += "file://environment.d-catkin.sh"
|
||||||
|
|
||||||
RDEPENDS_${PN}_class-native = "${PYTHON_PN}-catkin-pkg"
|
DEPENDS_class-native += "catkin-runtime"
|
||||||
RDEPENDS_${PN} = "cmake make binutils binutils-symlinks gcc gcc-symlinks g++ g++-symlinks \
|
|
||||||
catkin-runtime"
|
|
||||||
|
|
||||||
# The files in ${PYTHON_SITEPACKAGES_DIR} and catkin_find are
|
# The files in ${PYTHON_SITEPACKAGES_DIR} and catkin_find are
|
||||||
# installed by the catkin-runtime package. Therefore, we remove
|
# installed by the catkin-runtime package. Therefore, we remove
|
||||||
# them here so that they are not installed.
|
# them here so that they are not installed.
|
||||||
# Moreover: the ${ros_libdir}/python2.7 is empty. We need to
|
# Moreover: the ${ros_libdir}/python2.7 is empty. We need to
|
||||||
# remove it, otherwise the QA error [installed-vs-shipped] will hit on us.
|
# 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"
|
||||||
|
|
||||||
do_install_append() {
|
do_install_append() {
|
||||||
rm ${D}${ros_bindir}/catkin_find
|
rm ${D}${ros_bindir}/catkin_find
|
||||||
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}
|
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}
|
||||||
rmdir ${D}${ros_libdir}/${PYTHON_DIR}
|
rmdir ${D}${ros_libdir}/${PYTHON_DIR}
|
||||||
}
|
}
|
||||||
|
|
||||||
BBCLASSEXTEND += "native"
|
# 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"
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
From a34e7d9d7f77c123cb8cbf464ead628f97e42fd4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
|
|
||||||
Date: Wed, 13 Mar 2013 11:49:17 +0100
|
|
||||||
Subject: [PATCH] CATKIN_WORKSPACES: Don't require .catkin file
|
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [only for our setup]
|
|
||||||
|
|
||||||
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
|
|
||||||
---
|
|
||||||
cmake/all.cmake | 8 +++-----
|
|
||||||
cmake/list_insert_in_workspace_order.cmake | 9 ++++-----
|
|
||||||
2 files changed, 7 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmake/all.cmake b/cmake/all.cmake
|
|
||||||
index 83da965..a5f9df9 100644
|
|
||||||
--- a/cmake/all.cmake
|
|
||||||
+++ b/cmake/all.cmake
|
|
||||||
@@ -44,11 +44,9 @@ set(CMAKE_PREFIX_PATH_AS_IS ${CMAKE_PREFIX_PATH})
|
|
||||||
# list of unique catkin workspaces based on CMAKE_PREFIX_PATH
|
|
||||||
set(CATKIN_WORKSPACES "")
|
|
||||||
foreach(path ${CMAKE_PREFIX_PATH})
|
|
||||||
- if(EXISTS "${path}/.catkin")
|
|
||||||
- list(FIND CATKIN_WORKSPACES ${path} _index)
|
|
||||||
- if(_index EQUAL -1)
|
|
||||||
- list(APPEND CATKIN_WORKSPACES ${path})
|
|
||||||
- endif()
|
|
||||||
+ list(FIND CATKIN_WORKSPACES ${path} _index)
|
|
||||||
+ if(_index EQUAL -1)
|
|
||||||
+ list(APPEND CATKIN_WORKSPACES ${path})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
if(CATKIN_WORKSPACES)
|
|
||||||
diff --git a/cmake/list_insert_in_workspace_order.cmake b/cmake/list_insert_in_workspace_order.cmake
|
|
||||||
index 57ade4a..46887af 100644
|
|
||||||
--- a/cmake/list_insert_in_workspace_order.cmake
|
|
||||||
+++ b/cmake/list_insert_in_workspace_order.cmake
|
|
||||||
@@ -4,12 +4,11 @@
|
|
||||||
set(CATKIN_ORDERED_SPACES "")
|
|
||||||
foreach(_space ${CATKIN_DEVEL_PREFIX} ${CATKIN_WORKSPACES})
|
|
||||||
list(APPEND CATKIN_ORDERED_SPACES ${_space})
|
|
||||||
- if(NOT EXISTS "${_space}/.catkin")
|
|
||||||
- message(FATAL_ERROR "The path '${_space}' is in CATKIN_WORKSPACES but does not have a .catkin file")
|
|
||||||
+ if(EXISTS "${_space}/.catkin")
|
|
||||||
+ # prepend to existing list of sourcespaces
|
|
||||||
+ file(READ "${_space}/.catkin" _sourcespaces)
|
|
||||||
+ list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
|
|
||||||
endif()
|
|
||||||
- # prepend to existing list of sourcespaces
|
|
||||||
- file(READ "${_space}/.catkin" _sourcespaces)
|
|
||||||
- list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
debug_message(10 "CATKIN_ORDERED_SPACES ${CATKIN_ORDERED_SPACES}")
|
|
||||||
--
|
|
||||||
1.7.0.4
|
|
||||||
|
|
|
@ -0,0 +1,175 @@
|
||||||
|
From e6179255b99264a51f8733f52d92ca579fbacb61 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lukas Bulwahn <lukas.bulwahn@gmail.com>
|
||||||
|
Date: Sun, 15 Apr 2018 02:11:42 +0200
|
||||||
|
Subject: [PATCH] allow proper cross-compilation with catkin
|
||||||
|
|
||||||
|
The original patch is:
|
||||||
|
|
||||||
|
From: Dominique Hunziker <dominique.hunziker@gmail.com>
|
||||||
|
Date: Fri, 2 Jun 2017 12:12:33 +0200
|
||||||
|
|
||||||
|
I just re-applied it to the current version 0.6.19 and adjusted
|
||||||
|
the context of the patch as reaction to bitbake warning:
|
||||||
|
|
||||||
|
WARNING: catkin-runtime-0.6.19-r0 do_patch:
|
||||||
|
Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
|
||||||
|
---
|
||||||
|
cmake/all.cmake | 1 +
|
||||||
|
cmake/catkin_package.cmake | 8 ++++++++
|
||||||
|
cmake/catkin_strip_root_path.cmake | 32 +++++++++++++++++++++++++++++
|
||||||
|
cmake/templates/pkgConfig.cmake.in | 42 ++++++++++++++++++++++++++++++++++----
|
||||||
|
4 files changed, 79 insertions(+), 4 deletions(-)
|
||||||
|
create mode 100644 cmake/catkin_strip_root_path.cmake
|
||||||
|
|
||||||
|
diff --git a/cmake/all.cmake b/cmake/all.cmake
|
||||||
|
index 6910906..e421b76 100644
|
||||||
|
--- a/cmake/all.cmake
|
||||||
|
+++ b/cmake/all.cmake
|
||||||
|
@@ -118,6 +118,7 @@ foreach(filename
|
||||||
|
catkin_metapackage
|
||||||
|
catkin_package
|
||||||
|
catkin_package_xml
|
||||||
|
+ catkin_strip_root_path
|
||||||
|
catkin_workspace
|
||||||
|
debug_message
|
||||||
|
em_expand
|
||||||
|
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
|
||||||
|
index 8ef6c48..d6bc68f 100644
|
||||||
|
--- a/cmake/catkin_package.cmake
|
||||||
|
+++ b/cmake/catkin_package.cmake
|
||||||
|
@@ -432,6 +432,14 @@ function(_catkin_package)
|
||||||
|
# package cmake dir is the folder where the generated pkgConfig.cmake is located
|
||||||
|
set(PKG_CMAKE_DIR "\${${PROJECT_NAME}_DIR}")
|
||||||
|
|
||||||
|
+ if(CMAKE_CROSSCOMPILING)
|
||||||
|
+ catkin_strip_root_path(PROJECT_CMAKE_CONFIG_INCLUDE_DIRS UNIQUE)
|
||||||
|
+ catkin_strip_root_path(PROJECT_PKG_CONFIG_INCLUDE_DIRS UNIQUE)
|
||||||
|
+ catkin_strip_root_path(PKG_CONFIG_LIBRARIES)
|
||||||
|
+ catkin_strip_root_path(PKG_CONFIG_LIBRARIES_WITH_PREFIX)
|
||||||
|
+ catkin_strip_root_path(PKG_CONFIG_LIB_PATHS UNIQUE)
|
||||||
|
+ endif()
|
||||||
|
+
|
||||||
|
if(NOT PROJECT_SKIP_PKG_CONFIG_GENERATION)
|
||||||
|
# ensure that output folder exists
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace)
|
||||||
|
diff --git a/cmake/catkin_strip_root_path.cmake b/cmake/catkin_strip_root_path.cmake
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..ca5c453
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cmake/catkin_strip_root_path.cmake
|
||||||
|
@@ -0,0 +1,32 @@
|
||||||
|
+#
|
||||||
|
+# Strip CMAKE_FIND_ROOT_PATH prefixes from each path in the list ``var``.
|
||||||
|
+#
|
||||||
|
+# .. note:: Used for cross-compilation.
|
||||||
|
+#
|
||||||
|
+# :param var: the input / output variable name
|
||||||
|
+# :type var: string
|
||||||
|
+# :param UNIQUE: if specified the stripped list will contain unique paths, i.e.,
|
||||||
|
+# duplicate paths are not appended a second time
|
||||||
|
+# :type UNIQUE: option
|
||||||
|
+#
|
||||||
|
+function(catkin_strip_root_path var)
|
||||||
|
+ cmake_parse_arguments(ARG "UNIQUE" "" "" ${ARGN})
|
||||||
|
+ set(output)
|
||||||
|
+ foreach(element ${${var}})
|
||||||
|
+ if(IS_ABSOLUTE ${element})
|
||||||
|
+ foreach(root_path ${CMAKE_FIND_ROOT_PATH})
|
||||||
|
+ if(element MATCHES "^${root_path}/")
|
||||||
|
+ string(LENGTH ${root_path} root_path_length)
|
||||||
|
+ string(SUBSTRING ${element} ${root_path_length} -1 element)
|
||||||
|
+ break()
|
||||||
|
+ endif()
|
||||||
|
+ endforeach()
|
||||||
|
+ endif()
|
||||||
|
+ if(ARG_UNIQUE)
|
||||||
|
+ list_append_unique(output ${element})
|
||||||
|
+ else()
|
||||||
|
+ list(APPEND output ${element})
|
||||||
|
+ endif()
|
||||||
|
+ endforeach()
|
||||||
|
+ set(${var} ${output} PARENT_SCOPE)
|
||||||
|
+endfunction()
|
||||||
|
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
|
||||||
|
index d99b811..3af5c71 100644
|
||||||
|
--- a/cmake/templates/pkgConfig.cmake.in
|
||||||
|
+++ b/cmake/templates/pkgConfig.cmake.in
|
||||||
|
@@ -78,6 +78,15 @@ else()
|
||||||
|
set(@PROJECT_NAME@_PREFIX ${@PROJECT_NAME@_INSTALL_PREFIX})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+if(CMAKE_CROSSCOMPILING)
|
||||||
|
+ if("@DEVELSPACE@" STREQUAL "TRUE")
|
||||||
|
+ # can not disable host filesystem altogether; otherwise files in src/devel are no longer found
|
||||||
|
+ set(_find_root_path_both CMAKE_FIND_ROOT_PATH_BOTH)
|
||||||
|
+ else()
|
||||||
|
+ set(_find_root_path_both)
|
||||||
|
+ endif()
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# warn when using a deprecated package
|
||||||
|
if(NOT "@PROJECT_DEPRECATED@" STREQUAL "")
|
||||||
|
set(_msg "WARNING: package '@PROJECT_NAME@' is deprecated")
|
||||||
|
@@ -95,7 +104,19 @@ if(NOT "@PROJECT_CMAKE_CONFIG_INCLUDE_DIRS@ " STREQUAL " ")
|
||||||
|
set(@PROJECT_NAME@_INCLUDE_DIRS "")
|
||||||
|
set(_include_dirs "@PROJECT_CMAKE_CONFIG_INCLUDE_DIRS@")
|
||||||
|
foreach(idir ${_include_dirs})
|
||||||
|
- if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
|
||||||
|
+ if(IS_ABSOLUTE ${idir} AND CMAKE_CROSSCOMPILING)
|
||||||
|
+ get_filename_component(idir_path ${idir} DIRECTORY)
|
||||||
|
+ get_filename_component(idir_name ${idir} NAME)
|
||||||
|
+ set(include_dir_path "include_dir_path-NOTFOUND")
|
||||||
|
+ # use find_path to locate absolute path nested under potential root path
|
||||||
|
+ find_path(include_dir_path ${idir_name}
|
||||||
|
+ PATHS ${idir_path}
|
||||||
|
+ NO_DEFAULT_PATH ${_find_root_path_both})
|
||||||
|
+ if(NOT include_dir_path)
|
||||||
|
+ message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does not exist in any of the root filesystems. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
||||||
|
+ endif()
|
||||||
|
+ set(include "${include_dir_path}/${idir_name}")
|
||||||
|
+ elseif(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
|
||||||
|
set(include ${idir})
|
||||||
|
elseif("${idir} " STREQUAL "@CATKIN_GLOBAL_INCLUDE_DESTINATION@ ")
|
||||||
|
get_filename_component(include "${@PROJECT_NAME@_DIR}/../../../@CATKIN_GLOBAL_INCLUDE_DESTINATION@" ABSOLUTE)
|
||||||
|
@@ -116,18 +137,31 @@ foreach(library ${libraries})
|
||||||
|
list(APPEND @PROJECT_NAME@_LIBRARIES ${library})
|
||||||
|
elseif(TARGET ${library})
|
||||||
|
list(APPEND @PROJECT_NAME@_LIBRARIES ${library})
|
||||||
|
+ elseif(IS_ABSOLUTE ${library} AND CMAKE_CROSSCOMPILING)
|
||||||
|
+ get_filename_component(lib_path ${library} DIRECTORY)
|
||||||
|
+ get_filename_component(lib_name ${library} NAME)
|
||||||
|
+ set(lib "lib-NOTFOUND")
|
||||||
|
+ # use find_library to locate library given by absolute path nested under potential root path
|
||||||
|
+ find_library(lib ${lib_name}
|
||||||
|
+ PATHS ${lib_path}
|
||||||
|
+ NO_DEFAULT_PATH ${_find_root_path_both})
|
||||||
|
+ if(NOT lib)
|
||||||
|
+ message(FATAL_ERROR "Project '${PROJECT_NAME}' tried to find library '${library}'. The library is neither a target nor built/installed properly. Did you compile project '@PROJECT_NAME@'? Did you find_package() it before the subdirectory containing its code is included?")
|
||||||
|
+ endif()
|
||||||
|
+ _list_append_unique(@PROJECT_NAME@_LIBRARY_DIRS ${lib_path})
|
||||||
|
+ list(APPEND @PROJECT_NAME@_LIBRARIES ${lib})
|
||||||
|
elseif(IS_ABSOLUTE ${library})
|
||||||
|
list(APPEND @PROJECT_NAME@_LIBRARIES ${library})
|
||||||
|
else()
|
||||||
|
set(lib_path "")
|
||||||
|
- set(lib "${library}-NOTFOUND")
|
||||||
|
+ set(lib "lib-NOTFOUND")
|
||||||
|
# since the path where the library is found is returned we have to iterate over the paths manually
|
||||||
|
foreach(path @PKG_CONFIG_LIB_PATHS@)
|
||||||
|
find_library(lib ${library}
|
||||||
|
PATHS ${path}
|
||||||
|
- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
|
||||||
|
+ NO_DEFAULT_PATH ${_find_root_path_both})
|
||||||
|
if(lib)
|
||||||
|
- set(lib_path ${path})
|
||||||
|
+ get_filename_component(lib_path ${lib} DIRECTORY)
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
From 1aa4eeea5b693e67f41e59cf1b0019f45d3a8976 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
|
||||||
Date: Mon, 6 Feb 2017 16:15:16 +0200
|
|
||||||
Subject: [PATCH 1/2] avoid using host's paths when cross-compiling
|
|
||||||
|
|
||||||
This patch makes catkin to look for libraries only under Yocto's
|
|
||||||
sysroots and if a library is found the actual directory is used
|
|
||||||
for that library. Not the one that was provided to CMake's
|
|
||||||
find_library() command.
|
|
||||||
|
|
||||||
For better insights please refer to this WONTFIX'ed issue
|
|
||||||
https://github.com/ros/catkin/issues/379
|
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [suitable for Yocto only]
|
|
||||||
|
|
||||||
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
cmake/catkin_package.cmake | 10 ++++++++--
|
|
||||||
cmake/templates/pkgConfig.cmake.in | 4 ++--
|
|
||||||
2 files changed, 10 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
|
|
||||||
index 7d56edf..71f700f 100644
|
|
||||||
--- a/cmake/catkin_package.cmake
|
|
||||||
+++ b/cmake/catkin_package.cmake
|
|
||||||
@@ -104,6 +104,9 @@ function(_catkin_package)
|
|
||||||
message(FATAL_ERROR "catkin_package() called with unused arguments: ${PROJECT_UNPARSED_ARGUMENTS}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
+ # cmake.bbclass always sets $STAGING_DIR as the first value of CMAKE_FIND_ROOT_PATH
|
|
||||||
+ list(GET CMAKE_FIND_ROOT_PATH 0 ROOT_PATH)
|
|
||||||
+
|
|
||||||
if(NOT ${PROJECT_NAME} STREQUAL "catkin")
|
|
||||||
list(FIND ${PROJECT_NAME}_BUILDTOOL_DEPENDS "catkin" _index)
|
|
||||||
if(_index EQUAL -1)
|
|
||||||
@@ -231,7 +234,8 @@ function(_catkin_package)
|
|
||||||
# get library paths from all workspaces
|
|
||||||
set(lib_paths "")
|
|
||||||
foreach(workspace ${CATKIN_WORKSPACES})
|
|
||||||
- list_append_unique(lib_paths ${workspace}/lib)
|
|
||||||
+ string(REPLACE ${ROOT_PATH} "" tweaked_ws ${workspace})
|
|
||||||
+ list_append_unique(lib_paths ${tweaked_ws}/lib)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# merge explicitly listed libraries and libraries from non-catkin but find_package()-ed packages
|
|
||||||
@@ -250,7 +254,9 @@ function(_catkin_package)
|
|
||||||
catkin_pack_libraries_with_build_configuration(_PKG_CONFIG_LIBRARIES ${_PKG_CONFIG_LIBRARIES})
|
|
||||||
set(PKG_CONFIG_LIBRARIES "")
|
|
||||||
foreach(library ${_PKG_CONFIG_LIBRARIES})
|
|
||||||
- list_append_deduplicate(PKG_CONFIG_LIBRARIES ${library})
|
|
||||||
+ string(REPLACE ${ROOT_PATH} "" newlib ${library})
|
|
||||||
+ get_filename_component(newlib ${newlib} NAME)
|
|
||||||
+ list_append_deduplicate(PKG_CONFIG_LIBRARIES ${newlib})
|
|
||||||
endforeach()
|
|
||||||
catkin_unpack_libraries_with_build_configuration(PKG_CONFIG_LIBRARIES ${PKG_CONFIG_LIBRARIES})
|
|
||||||
|
|
||||||
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
|
|
||||||
index d99b811..c692108 100644
|
|
||||||
--- a/cmake/templates/pkgConfig.cmake.in
|
|
||||||
+++ b/cmake/templates/pkgConfig.cmake.in
|
|
||||||
@@ -125,9 +125,9 @@ foreach(library ${libraries})
|
|
||||||
foreach(path @PKG_CONFIG_LIB_PATHS@)
|
|
||||||
find_library(lib ${library}
|
|
||||||
PATHS ${path}
|
|
||||||
- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
|
|
||||||
+ NO_DEFAULT_PATH ONLY_CMAKE_FIND_ROOT_PATH)
|
|
||||||
if(lib)
|
|
||||||
- set(lib_path ${path})
|
|
||||||
+ get_filename_component(lib_path ${lib} DIRECTORY)
|
|
||||||
break()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From f58947cf910ec4de1a9f093b4eb1fe68e6cfd602 Mon Sep 17 00:00:00 2001
|
From 64d33f250beaeb375cc1c93226c2b45a746d51c2 Mon Sep 17 00:00:00 2001
|
||||||
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
||||||
Date: Thu, 27 Apr 2017 11:04:27 +0300
|
Date: Thu, 27 Apr 2017 11:04:27 +0300
|
||||||
Subject: [PATCH] ignore LD_LIBRARY_PATH set in environment_cache.py
|
Subject: [PATCH] ignore LD_LIBRARY_PATH set in environment_cache.py
|
||||||
|
@ -26,6 +26,7 @@ by bitbake.
|
||||||
Upstream-Status: Inappropriate [upstream doesn't use bitbake and the change may break on-target development]
|
Upstream-Status: Inappropriate [upstream doesn't use bitbake and the change may break on-target development]
|
||||||
|
|
||||||
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
||||||
|
|
||||||
---
|
---
|
||||||
python/catkin/environment_cache.py | 3 ++-
|
python/catkin/environment_cache.py | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
@ -43,6 +44,3 @@ index 3defa52..dba2c50 100755
|
||||||
+ code.append('export %s="%s"' % (key, value))
|
+ code.append('export %s="%s"' % (key, value))
|
||||||
else:
|
else:
|
||||||
code.append('set %s=%s' % (key, value))
|
code.append('set %s=%s' % (key, value))
|
||||||
--
|
|
||||||
2.9.3
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 224186a1af40cd3b7efb4f0648a3a4ca6ca1e7fa Mon Sep 17 00:00:00 2001
|
From a429081b23223b1d6729da2c9087318bc08a808c Mon Sep 17 00:00:00 2001
|
||||||
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
||||||
Date: Thu, 6 Apr 2017 15:25:13 +0300
|
Date: Thu, 6 Apr 2017 15:25:13 +0300
|
||||||
Subject: [PATCH] python.cmake: look for python3 first
|
Subject: [PATCH] python.cmake: look for python3 first
|
||||||
|
@ -6,6 +6,7 @@ Subject: [PATCH] python.cmake: look for python3 first
|
||||||
Upstream-Status: Inappropriate [the patch overrides ROS's default to python2]
|
Upstream-Status: Inappropriate [the patch overrides ROS's default to python2]
|
||||||
|
|
||||||
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
||||||
|
|
||||||
---
|
---
|
||||||
cmake/python.cmake | 1 +
|
cmake/python.cmake | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
@ -22,6 +23,3 @@ index 70f3d26..38f8320 100644
|
||||||
find_package(PythonInterp REQUIRED)
|
find_package(PythonInterp REQUIRED)
|
||||||
message(STATUS "Using PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}")
|
message(STATUS "Using PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}")
|
||||||
|
|
||||||
--
|
|
||||||
2.9.3
|
|
||||||
|
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
From b0ad0d6e6a7872c59180596d29ac5f52723c4317 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
|
||||||
Date: Wed, 22 Feb 2017 13:48:37 +0200
|
|
||||||
Subject: [PATCH] relocate dependency's headers to current sysroot
|
|
||||||
|
|
||||||
If a package (A) depends on another package (B) and the package
|
|
||||||
B depends on Boost then it might happen that B produces BConfig.cmake
|
|
||||||
file where absolute paths to Boost's headers are put (because CMake's
|
|
||||||
standard FindBoost.cmake module reports absolute paths). In case of
|
|
||||||
Yocto it means that BConfig.cmake will contain something like
|
|
||||||
/path/to/build/tmp-glibc/work/i586/package_B/0.0.1/recipe-sysroot/usr/include.
|
|
||||||
The path may not exist at the moment when the package A is being built.
|
|
||||||
And that leads to the failure of the check this patch switches off.
|
|
||||||
|
|
||||||
The problem has been reported to catkin's issue tracker:
|
|
||||||
https://github.com/ros/catkin/issues/851
|
|
||||||
|
|
||||||
This patch "relocates" required headers from dependencies' sysroots
|
|
||||||
to the current sysroot by removing sysroot prefix from include dirs
|
|
||||||
in *Config.cmake files at the moment the files get created and
|
|
||||||
by prepending the include dirs again with the current sysroot prefix.
|
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [suitable for Yocto's RSS feature only]
|
|
||||||
|
|
||||||
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
cmake/catkin_package.cmake | 5 ++++-
|
|
||||||
cmake/templates/pkgConfig.cmake.in | 10 +++++++---
|
|
||||||
2 files changed, 11 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
|
|
||||||
index 71f700f..818ccd9 100644
|
|
||||||
--- a/cmake/catkin_package.cmake
|
|
||||||
+++ b/cmake/catkin_package.cmake
|
|
||||||
@@ -161,7 +161,10 @@ function(_catkin_package)
|
|
||||||
if(NOT ${${depend_name}_FOUND})
|
|
||||||
message(FATAL_ERROR "catkin_package() DEPENDS on '${depend_name}' which must be find_package()-ed before. If it is a catkin package it can be declared as CATKIN_DEPENDS instead without find_package()-ing it.")
|
|
||||||
endif()
|
|
||||||
- list(APPEND PROJECT_DEPENDENCIES_INCLUDE_DIRS ${${depend_name}_INCLUDE_DIRS})
|
|
||||||
+ foreach(incdir ${${depend_name}_INCLUDE_DIRS})
|
|
||||||
+ string(REPLACE ${ROOT_PATH} "" tweaked_idir ${incdir})
|
|
||||||
+ list_append_deduplicate(PROJECT_DEPENDENCIES_INCLUDE_DIRS ${tweaked_idir})
|
|
||||||
+ endforeach()
|
|
||||||
list(APPEND PROJECT_DEPENDENCIES_LIBRARIES ${${depend_name}_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
|
|
||||||
index c692108..683ef67 100644
|
|
||||||
--- a/cmake/templates/pkgConfig.cmake.in
|
|
||||||
+++ b/cmake/templates/pkgConfig.cmake.in
|
|
||||||
@@ -94,18 +94,22 @@ set(@PROJECT_NAME@_FOUND_CATKIN_PROJECT TRUE)
|
|
||||||
if(NOT "@PROJECT_CMAKE_CONFIG_INCLUDE_DIRS@ " STREQUAL " ")
|
|
||||||
set(@PROJECT_NAME@_INCLUDE_DIRS "")
|
|
||||||
set(_include_dirs "@PROJECT_CMAKE_CONFIG_INCLUDE_DIRS@")
|
|
||||||
+ list(GET CMAKE_FIND_ROOT_PATH 0 root_path)
|
|
||||||
foreach(idir ${_include_dirs})
|
|
||||||
+ if(IS_ABSOLUTE ${idir} AND NOT "${idir}" MATCHES "^${root_path}.*")
|
|
||||||
+ set(idir "${root_path}${idir}")
|
|
||||||
+ endif()
|
|
||||||
if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
|
|
||||||
- set(include ${idir})
|
|
||||||
+ _list_append_unique(@PROJECT_NAME@_INCLUDE_DIRS ${idir})
|
|
||||||
elseif("${idir} " STREQUAL "@CATKIN_GLOBAL_INCLUDE_DESTINATION@ ")
|
|
||||||
get_filename_component(include "${@PROJECT_NAME@_DIR}/../../../@CATKIN_GLOBAL_INCLUDE_DESTINATION@" ABSOLUTE)
|
|
||||||
if(NOT IS_DIRECTORY ${include})
|
|
||||||
message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does not exist in '${include}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
|
||||||
endif()
|
|
||||||
+ _list_append_unique(@PROJECT_NAME@_INCLUDE_DIRS ${include})
|
|
||||||
else()
|
|
||||||
- message(FATAL_ERROR "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '@PKG_INCLUDE_PREFIX@/${idir}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
|
||||||
+ message(WARNING "Project '@PROJECT_NAME@' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '@PKG_INCLUDE_PREFIX@/${idir}'. Ask the maintainer '@PROJECT_MAINTAINER@' to fix it.")
|
|
||||||
endif()
|
|
||||||
- _list_append_unique(@PROJECT_NAME@_INCLUDE_DIRS ${include})
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 431739f10027022b6e3d2cd75cffa04c848cd14d Mon Sep 17 00:00:00 2001
|
From 7894487c0d749124c3b0d82fcebff2309a84024a Mon Sep 17 00:00:00 2001
|
||||||
From: Lukas Bulwahn <lukas.bulwahn@bmw-carit.de>
|
From: Lukas Bulwahn <lukas.bulwahn@bmw-carit.de>
|
||||||
Date: Tue, 31 May 2016 15:38:05 +0200
|
Date: Tue, 31 May 2016 15:38:05 +0200
|
||||||
Subject: [PATCH] use python provided by environment instead of the generated
|
Subject: [PATCH] use python provided by environment instead of the generated
|
||||||
|
@ -13,12 +13,13 @@ bf12b40c2 [1]. We revert this change here to address the issue #384 [2].
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [only for our setup]
|
Upstream-Status: Inappropriate [only for our setup]
|
||||||
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
|
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
|
||||||
|
|
||||||
---
|
---
|
||||||
cmake/templates/_setup_util.py.in | 2 +-
|
cmake/templates/_setup_util.py.in | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
|
diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in
|
||||||
index cace21c..ff2c6b4 100755
|
index 1949c4c..f8807f3 100755
|
||||||
--- a/cmake/templates/_setup_util.py.in
|
--- a/cmake/templates/_setup_util.py.in
|
||||||
+++ b/cmake/templates/_setup_util.py.in
|
+++ b/cmake/templates/_setup_util.py.in
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
|
@ -27,6 +28,3 @@ index cace21c..ff2c6b4 100755
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Software License Agreement (BSD License)
|
# Software License Agreement (BSD License)
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
alias catkin_make=" \
|
||||||
|
catkin_make \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake \
|
||||||
|
-DSETUPTOOLS_DEB_LAYOUT=OFF \
|
||||||
|
"
|
||||||
|
alias catkin_make_isolated=" \
|
||||||
|
catkin_make_isolated \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake \
|
||||||
|
-DSETUPTOOLS_DEB_LAYOUT=OFF \
|
||||||
|
"
|
|
@ -0,0 +1,22 @@
|
||||||
|
diff --git a/clients/roscpp/src/libros/callback_queue.cpp b/clients/roscpp/src/libros/callback_queue.cpp
|
||||||
|
index cd2f4f8..fa600d5 100644
|
||||||
|
--- a/clients/roscpp/src/libros/callback_queue.cpp
|
||||||
|
+++ b/clients/roscpp/src/libros/callback_queue.cpp
|
||||||
|
@@ -229,7 +229,7 @@ CallbackQueue::CallOneResult CallbackQueue::callOne(ros::WallDuration timeout)
|
||||||
|
{
|
||||||
|
if (!timeout.isZero())
|
||||||
|
{
|
||||||
|
- condition_.timed_wait(lock, boost::posix_time::microseconds(timeout.toSec() * 1000000.0f));
|
||||||
|
+ condition_.timed_wait(lock, boost::posix_time::microseconds(static_cast<int64_t>(timeout.toSec() * 1000000.0f)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callbacks_.empty())
|
||||||
|
@@ -305,7 +305,7 @@ void CallbackQueue::callAvailable(ros::WallDuration timeout)
|
||||||
|
{
|
||||||
|
if (!timeout.isZero())
|
||||||
|
{
|
||||||
|
- condition_.timed_wait(lock, boost::posix_time::microseconds(timeout.toSec() * 1000000.0f));
|
||||||
|
+ condition_.timed_wait(lock, boost::posix_time::microseconds(static_cast<int64_t>(timeout.toSec() * 1000000.0f)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callbacks_.empty() || !enabled_)
|
|
@ -10,7 +10,9 @@ DEPENDS = "cpp-common message-generation rosconsole roscpp-serialization roscpp-
|
||||||
|
|
||||||
require ros-comm.inc
|
require ros-comm.inc
|
||||||
|
|
||||||
SRC_URI += "file://0001-roscpp-add-missing-header-for-writev.patch;striplevel=3"
|
SRC_URI += "\
|
||||||
|
file://0001-roscpp-add-missing-header-for-writev.patch;striplevel=3\
|
||||||
|
file://0001-make-implicit-cast-explicit.patch;striplevel=3"
|
||||||
|
|
||||||
ROS_PKG_SUBDIR = "clients"
|
ROS_PKG_SUBDIR = "clients"
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ SRC_URI += "file://0001-increase-rosmaster-timeout.patch;patchdir=../.. \
|
||||||
ROS_PKG_SUBDIR = "tools"
|
ROS_PKG_SUBDIR = "tools"
|
||||||
|
|
||||||
RDEPENDS_${PN} = "\
|
RDEPENDS_${PN} = "\
|
||||||
${@'python-textutils' if d.getVar('PYTHON_PN', True) == 'python2' else ''} \
|
${@'python-textutils' if d.getVar('PYTHON_PN', True) == 'python' else ''} \
|
||||||
${PYTHON_PN}-logging \
|
${PYTHON_PN}-logging \
|
||||||
${PYTHON_PN}-threading \
|
${PYTHON_PN}-threading \
|
||||||
${PYTHON_PN}-rospkg \
|
${PYTHON_PN}-rospkg \
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
From 4254977bbfc67a3083e3881a56b50b729bf57d9f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dominique Hunziker <dominique.hunziker@gmail.com>
|
||||||
|
Date: Fri, 2 Jun 2017 11:57:54 +0200
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
---
|
||||||
|
core/roslib/env-hooks/10.ros.sh.em | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/core/roslib/env-hooks/10.ros.sh.em b/core/roslib/env-hooks/10.ros.sh.em
|
||||||
|
index caed342..1c64fc4 100644
|
||||||
|
--- a/core/roslib/env-hooks/10.ros.sh.em
|
||||||
|
+++ b/core/roslib/env-hooks/10.ros.sh.em
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
# generated from ros/env-hooks/10.ros.sh.em
|
||||||
|
|
||||||
|
# scrub old ROS bin dirs, to avoid accidentally finding the wrong executables
|
||||||
|
-export PATH="`@(PYTHON_EXECUTABLE) -c \"import os; print(os.pathsep.join([x for x in \\\"$PATH\\\".split(os.pathsep) if not any([d for d in ['cturtle', 'diamondback', 'electric', 'fuerte'] if d in x])]))\"`"
|
||||||
|
+export PATH="`/usr/bin/env python -c \"import os; print(os.pathsep.join([x for x in \\\"$PATH\\\".split(os.pathsep) if not any([d for d in ['cturtle', 'diamondback', 'electric', 'fuerte'] if d in x])]))\"`"
|
||||||
|
|
||||||
|
if [ -n "$ROS_DISTRO" -a "$ROS_DISTRO" != "indigo" ]; then
|
||||||
|
echo "ROS_DISTRO was set to '$ROS_DISTRO' before. Please make sure that the environment does not mix paths from different distributions."
|
||||||
|
@@ -30,7 +30,7 @@ for workspace in workspaces:
|
||||||
|
print(os.pathsep.join(paths))
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
-export ROS_PACKAGE_PATH="`@(PYTHON_EXECUTABLE) -c \"$PYTHON_CODE_BUILD_ROS_PACKAGE_PATH\"`"
|
||||||
|
+export ROS_PACKAGE_PATH="`/usr/bin/env python -c \"$PYTHON_CODE_BUILD_ROS_PACKAGE_PATH\"`"
|
||||||
|
|
||||||
|
@[if DEVELSPACE]@
|
||||||
|
# env variables in develspace
|
|
@ -9,4 +9,6 @@ require ros.inc
|
||||||
|
|
||||||
ROS_PKG_SUBDIR = "core"
|
ROS_PKG_SUBDIR = "core"
|
||||||
|
|
||||||
|
SRC_URI += "file://0001-use-env-to-get-python-exec.patch;striplevel=3"
|
||||||
|
|
||||||
RDEPENDS_${PN} = "${PYTHON_PN}-rospkg catkin-runtime"
|
RDEPENDS_${PN} = "${PYTHON_PN}-rospkg catkin-runtime"
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
diff --git a/rostime/include/ros/impl/duration.h b/rostime/include/ros/impl/duration.h
|
||||||
|
index 2ca2f5b..7ebd202 100644
|
||||||
|
--- a/rostime/include/ros/impl/duration.h
|
||||||
|
+++ b/rostime/include/ros/impl/duration.h
|
||||||
|
@@ -179,7 +179,7 @@ namespace ros {
|
||||||
|
#if defined(BOOST_DATE_TIME_HAS_NANOSECONDS)
|
||||||
|
return bt::seconds(sec) + bt::nanoseconds(nsec);
|
||||||
|
#else
|
||||||
|
- return bt::seconds(sec) + bt::microseconds(nsec/1000.0);
|
||||||
|
+ return bt::seconds(sec) + bt::microseconds(nsec/1000);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/rostime/include/ros/impl/time.h b/rostime/include/ros/impl/time.h
|
||||||
|
index ec991e6..61b686c 100644
|
||||||
|
--- a/rostime/include/ros/impl/time.h
|
||||||
|
+++ b/rostime/include/ros/impl/time.h
|
||||||
|
@@ -167,7 +167,7 @@ namespace ros
|
||||||
|
#if defined(BOOST_DATE_TIME_HAS_NANOSECONDS)
|
||||||
|
return pt::from_time_t(sec) + pt::nanoseconds(nsec);
|
||||||
|
#else
|
||||||
|
- return pt::from_time_t(sec) + pt::microseconds(nsec/1000.0);
|
||||||
|
+ return pt::from_time_t(sec) + pt::microseconds(nsec/1000);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
@ -6,3 +6,5 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc
|
||||||
DEPENDS = "boost cpp-common"
|
DEPENDS = "boost cpp-common"
|
||||||
|
|
||||||
require roscpp-core.inc
|
require roscpp-core.inc
|
||||||
|
|
||||||
|
SRC_URI += "file://0001-remove-implicit-cast.patch;striplevel=2"
|
||||||
|
|
|
@ -14,4 +14,4 @@ SRC_URI[sha256sum] = "a8fecbe03f9757510fe47137642e39a7c31b823d5bf7fa7890acc11691
|
||||||
inherit catkin
|
inherit catkin
|
||||||
|
|
||||||
RDEPENDS_${PN} = "${PYTHON_PN}-rosdep \
|
RDEPENDS_${PN} = "${PYTHON_PN}-rosdep \
|
||||||
${@'python-subprocess' if d.getVar('PYTHON_PN', True) == 'python2' else ''}"
|
${@'python-subprocess' if d.getVar('PYTHON_PN', True) == 'python' else ''}"
|
||||||
|
|
Loading…
Reference in New Issue