Commit Graph

25 Commits

Author SHA1 Message Date
Herb Kuta 809f165758 DRAFT catkin*.bbclass: ROS_USE_PYTHON3 -> ROS_PYTHON_VERSION
Also ensure PYTHON_DIR is set when only inherit-ing catkin_ros_prefix.bbclass
2019-07-03 14:24:51 -07:00
Herb Kuta ac3a2ffe70 DRAFT ros.bbclass -> catkin_ros_prefix.bbclass
Not updating recipes under v1-recipes-*
2019-07-03 14:24:50 -07:00
Dominique Hunziker bc89dbf4ea catkin: swap cross-compilation patch 2018-04-13 15:56:35 +02:00
Dominique Hunziker 8754c01a23 reorganize how files & dependencies are split between catkin & catkin-runtime 2018-04-13 15:56:35 +02:00
Dmitry Rozhkov 84c1e54b11 catkin.bbclass: adapt to binutils 2.29
After updating to binutils 2.29 builds fail with

    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/7.2.0/ld: warning: libclass_loader.so, needed by /home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so, not found (try using -rpath or -rpath-link)
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/7.2.0/ld: warning: libroslib.so, needed by /home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so, not found (try using -rpath or -rpath-link)
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::ClassLoader::isLibraryLoaded()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::loadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::MultiLibraryClassLoader(bool)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `ros:📦:getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::systemLibrarySuffix[abi:cxx11]()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::class_loader_private::AbstractMetaObjectBase::isOwnedBy(class_loader::ClassLoader const*)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::class_loader_private::getFactoryMapForBaseClass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::getAllAvailableClassLoaders()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::ClassLoader::hasUnmanagedInstanceBeenCreated()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::ClassLoader::unloadLibraryInternal(bool)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::unloadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::class_loader_private::getPluginBaseToFactoryMapMapMutex()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::getRegisteredLibraries[abi:cxx11]()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `ros:📦:getPlugins(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::MultiLibraryClassLoader::~MultiLibraryClassLoader()'
    build/tmp-glibc/work/i586-oe-linux/kdl-parser/1.11.14-r0/recipe-sysroot/opt/ros/indigo/lib/liburdf.so: undefined reference to `class_loader::ClassLoader::loadLibrary()'

because of wrong value of -Wl,-rpath provided to the cross-linker.

This patch makes use of -Wl,-rpath-link option added unconditionally to all
catkin-based builds to aleviate the problem.

NB: The proper fix though should either replace -Wl,-rpath with
-Wl,-rpath-link where it's needed or use correct path to target
libs in -Wl,-rpath.

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
2017-08-28 17:11:08 +03:00
Dmitry Rozhkov 3e201940f6 enable python3 compatible builds of ROS (resolves #458)
By default meta-ros uses python2. In case you want to get
python3-compatible builds add the following line to your local.conf:

    ROS_USE_PYTHON3 = "yes"

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
2017-04-10 14:37:11 +03:00
Dmitry Rozhkov efd6e9e1ef catkin.bbclass: make expression more readable
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
2017-04-07 14:13:00 +03:00
Andreas Baak 185882428c 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 13:22:06 +01:00
Peter S. Housel e9ec1fc089 classes: locate packages in /opt/ros/${ROSDISTRO}
Following standard convention, place ROS/Catkin packages under the
prefix /opt/ros/${ROSDISTRO} (exported as ${ros_prefix}) rather than in
the usual ${prefix}.
2014-08-14 12:29:02 -07:00
Lukas Bulwahn df2f56cfa4 ros.bbclass: separating setup for faulty solibs from ros setup 2014-06-02 22:56:58 +02:00
Lukas Bulwahn aa2ce283b6 removing native packages and dependencies
The native packages are not required anymore, because the needed
python scripts during compile time are also provided by the
cross-compiled packages and the python scripts are platform
independent. Only the catkin package is provided as native package.
2013-09-23 09:56:18 +02:00
Stefan Herbrechtsmeier ff4eff0985 ros.bbclass: Move common ros code into its own class
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-08-26 07:25:35 +02:00
Lukas Bulwahn 3793b92eb7 catkin.class: generally configure without tests 2013-07-04 15:14:17 +02:00
Koen Kooi 741d2f3cc7 catkin bbclass: package commonlist files in ${PN}-commonlisp
This should fix https://github.com/bmwcarit/meta-ros/issues/77

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
2013-05-29 13:49:14 +02:00
Lukas Bulwahn 0d07506bf4 catkin.bbclass: make ROS_BP composed from ROS_BPN and version
The new definition was the original intention, and the originally
wrong definition happened to slip in.
Initial commit and discussion about the intention is in commit
c6837ecbf8.
2013-05-24 09:35:40 +02:00
Lukas Bulwahn 6a5e2c6a3a catkin.class: adding package.xml to the shipped packages for rosversion
The rosversion command requires that the package.xml are available at
run time. The rosversion command is used when starting roscore.
2013-04-11 08:32:21 +02:00
Lukas Bulwahn c6a89dd7af catkin.bbclass: adding .debug files to the dbg package
In the topic-tools recipe, a QA error was raised as the .debug files were put
into the main package. By adding this line in the catkin class, the files are
now placed in the dbg package.
2013-04-04 13:05:15 +02:00
Stefan Herbrechtsmeier 9606c20935 catkin.bbclass: Stage /usr/etc sysroot direcotry
The CMake generate_messages function from the genmsg package
detects the installed message generators via files in the
/usr/etc/ros/genmsg directory. Stage the /usr/etc directory
manually as it is not a common path.

Fixed #50

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-04-04 11:10:37 +02:00
Stefan Herbrechtsmeier 36f0eb3c63 catkin.bbclass: Add complete project datadir to PN package
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-03-14 13:23:34 +01:00
Stefan Herbrechtsmeier 5ab84a4cd9 catkin.bbclass: Add common ros nodes path to package files
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-03-14 11:36:55 +01:00
Stefan Herbrechtsmeier 0fb09bfd91 catkin.bbclass: add native support to catkin packages
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-03-14 10:06:47 +01:00
Stefan Herbrechtsmeier eee9c65750 catkin.bbclass: Add additonal file entries
Add additonal file entries with standard ros paths to fix the following warnings:
WARNING: QA Issue: std-msgs: Files/directories were installed but not shipped
  /usr/share/std_msgs/msg
WARNING: QA Issue: rosconsole: Files/directories were installed but not shipped
  /usr/share/ros/config/rosconsole.config

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-02-28 13:17:50 +01:00
Stefan Herbrechtsmeier 1238d14f5a catkin.bbclass: Use out of tree build
Build catkin packages out of tree as this is the default of ros and
makes it simple to identify build paths.

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-02-28 13:08:21 +01:00
Stefan Herbrechtsmeier a72dde4290 catkin.bbclass: Remove duplicate file entries
Remove all ${BPN} file entries as catkin packages always use
underlines instead of hyphens.

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-02-28 13:08:09 +01:00
Stefan Herbrechtsmeier c6837ecbf8 catkin.bbclass: add catkin configuration class
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
2013-02-15 15:49:59 +01:00