Before this commit, the following sequence of bitbake commands
failed because the path was set during compile time, and not at
runtime. After the patch from Dirk Thomas, the following sequence
now works.
bitbake nodelet-topic-tools -c cleansstate && \
bitbake dynamic-reconfigure && bitbake nodelet-topic-tools
When updating from 1.9.41 to 1.9.47, the commit
c5dfa6305e
adds a routine in the CMakeLists.txt to find the pthread library.
This routine is not suitable for the use with our tool chain, i.e.,
it reports an error (cf. #125) when using roscpp-native.
This commit adds a patch that reverts that change in roscpp's
CMakeLists.txt.
In this commit, the angles directory is renamed to match repository
name in hydro/release.yaml, and a patch is required probably
because of the new catkin version.
To compile nodelet-topic-tools, we must provide a working
dynamic-reconfigure in the native sysroot. This requires
some adjustments to the native versions of the required
python modules.
In particular, the following tasks ran successfully for this
commit:
This command tests compiling rospack-native:
rm bitbake.lock cache/ sstate-cache/ tmp-eglibc/ -rf && bitbake rospack-native
This command tests compiling roslib-native:
rm bitbake.lock cache/ sstate-cache/ tmp-eglibc/ -rf && bitbake roslib-native
As nodelet-topic-tools uses rospack-native and roslib-native to
some extent (dependency: rospack-native -> roslib-native ->
dynamic-reconfigure-native -> nodelet-topic-tools), this command
tests running rospack-native and roslib-native:
rm bitbake.lock cache/ sstate-cache/ tmp-eglibc/ -rf && bitbake nodelet-topic-tools
This command tests compiling rospack and roslib:
rm bitbake.lock cache/ sstate-cache/ tmp-eglibc/ -rf && bitbake rospack
rm bitbake.lock cache/ sstate-cache/ tmp-eglibc/ -rf && bitbake roslib
All these command run with this commit without errors, and
future commits to these files should keep them run without
errors or justify modifications with better tests.
A minor open issue related to rospack is issue #116
(cf. https://github.com/bmwcarit/meta-ros/issues/116).
This commit incorporates feedback from Stefan Herbrechtsmeier.
The rostest package requires that the rostest executable can be
found by cmake's find during configure. Hence, rostest depends on
rostest-native.
To implement this, rostest and rostest-native are defined with
different dependencies.
This commit resolves issue #83.
The python script path for gen_cpp.py is hard coded in the CMake
file and doesn't work during cross compile. Setup it via find_program
during runtime.
This closes#91 with the following error:
*** No rule to make target `/usr/lib/gencpp/gen_cpp.py', needed by
`devel/include/roscpp/Logger.h'. Stop
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The python script path for gen_lisp.py is hard coded in the CMake
file and doesn't work during cross compile. Setup it via find_program
during runtime.
This closes#87 with the following error:
*** No rule to make target `/usr/lib/genlisp/gen_lisp.py', needed by
`devel/share/common-lisp/ros/std_msgs/msg/Bool.lisp'. Stop
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
This closes#69 and #80 with the following error:
*** No rule to make target `/usr/lib/genpy/genmsg_py.py', needed by
`devel/lib/python2.7/site-packages/std_msgs/msg/_Bool.py'. Stop.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Currently, it is not clear if the additional files are required in
the normal package or the dev package. Hence, we do not touch them
(they are not added to any package or deleted after the installation)
until the right operation is clear.
Until then, the console-bridge emits the warning
WARNING: QA Issue: console-bridge: Files/directories were installed but not shipped
/usr/share
/usr/share/console_bridge
/usr/share/console_bridge/package.xml
/usr/share/console_bridge/cmake
/usr/share/console_bridge/cmake/console_bridge-config.cmake
The nodelet package.xml also lists the dependency on uuid, but the
recipe seems to work without.
It uses the SRC_URI from its ros repository (instead of the ros-gbp
repository), because in the commit
30306b6bba, we agreed to use the ros
location instead of the ros-gbp location uniformly.
The console-bridge is a cmake installation, but not a catkin package.
In its current state, the recipe compiles and installs, but the
class_loader package fails and complains with
| catkin_package() CATKIN_DEPENDS on 'console_bridge', which has been found
| in
| '(...)/build/tmp-eglibc/sysroots/qemux86-64/usr/share/console_bridge/cmake/console_bridge-config.cmake',
| but it is not a catkin package
This commit provides the current state for further discussion and
joint investigation.
| CMake Warning at /build/v2012.12/build/tmp-angstrom_v2012_12-eglibc/sysroots/x86_64-linux/usr/share/catkin/cmake/test/nosetests.cmake:90 (message):
| nosetests not found, Python tests can not be run (try installing package
| 'python-nose')
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
The last patched version assumes that the variable msg include dirs
is only one directory and not a list of directories. This leads to
errors if generate_message(DIRECTORY ...) occurs twice in the
CMakeLists files.
Make Error at build/devel/share/cmake/...-msg-paths.cmake:2 (if):
| if given arguments:
|
| "NOT" "IS_ABSOLUTE" "" ""
Fixed issue #72.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The python binary path for genmsg_py.py and gensrv_py.py are hard
coded in the CMake file and don't work during cross compile. Setup
them via find_program during runtime.
This fix#69 and the following error:
*** No rule to make target `/usr/lib/genpy/genmsg_py.py', needed by
`devel/lib/python2.7/site-packages/std_msgs/msg/_Bool.py'. Stop.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
When importing the rosbag module in python, it fails in a genpy python module
complaining about missing the shutil python module. The shutils module is
provided by python-shell.
The recipes are supposed to cross-compile and install the chatter
example. In this commit, the recipe do not contain any dependencies
and configure does not run through yet.
The recipe python-pprint rdepends on python-io. As this was not reflected in
the oe-core repository, we added the dependency in genmsg.
Now after the commit abe7bf9992e298f1b53e790eee7b064a9e4e8589 in oe-core,
we can remove the runtime dependency in genmsg.
This commit resolves issue #54.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
The topic-tools fails during the do_compile step at:
.../sysroots/x86_64-linux/usr/lib/libboost_thread-mt.so: could not read symbols: File in wrong format
The failure comes from the rostest-native package which delivers a
header file with boost dependencies and therefore add the relevant
library to the link path. Add rostest to the DEPENDS to use the
header and libraries from the cross sysroot and keep the native
rostest for the binary.
Fixed#51
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
For starting roscore, it requires a number of runtime dependencies.
At the moment, all runtime dependencies, even recursive runtime dependencies,
are added only in the roslaunch recipe. Hence, the recipe contains all
runtime dependencies.
At a later stage, one should move the recursive runtime dependencies into
the appropriate recipes.
Rostest depends on its own package and therefore needs to search
in the devel space for the rostestConfig.cmake during native
build.
| CMake Error at /.../usr/share/catkin/cmake/find_program_required.cmake:5 (message):
| rostest not found
|
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
All ROS packages with install tools in the bin directory or install
python code with is used by other packages should be used as native
version. Adapte the DEPENDS accordingly.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Adapt genmsg to handle msg files relatively to the current
cmake path. Without this modification genmsg failed to generate
messages because it pass a path without sysroot to the python
code.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Catkin require a .catkin file in all CMAKE_PREFIX_PATH to add them
to the CATKIN_WORKSPACES. Remove this requirement as it couldn't
be satisfy when catkin packages are installed into the common usr
prefix. Without this adaption catkin couldn't find all files.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The recipes were created by manually extracting the information
from the corresponding package.xml.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
After the release of ROS groovy, there is no strong reason to
continue to work on the cross-compilation of the previous ROS
version fuerte. Hence, this commit removes the initial
non-functioning recipe and the reference in the README file.
For cross-compiling ROS fuerte, the repository at
https://github.com/yida/yida-collections
might be a better starting point anyway.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Add the package to the dependency because the do_configure fails
as it tries to find the package.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Cmake should search in the native sysroot for rosunit. Remove
NO_CMAKE_FIND_ROOT_PATH from the find_program call to allow
cmake to search in the native sysroot.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Add the package to the dependency because the do_configure fails
as it tries to find the package.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The license checksum was never tested before as the do_configure
failed until now and do_qa_configure is run after do_configure.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The catkin framework need some modification to support cross compiling
packages via yocto. When we want to upstream patches we need to provide
patches against the current groovy-devel branch. Use this branch as base
for our work to simplify the tests and to unify the developing process
of catkin.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
* Use configuration options instead of patches
* Use relative paths in CMake installation files
* Use catkin class
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>