Commit Graph

72 Commits

Author SHA1 Message Date
Andre Rosa a25bb417e5 DRAFT ament.bbclass: Fix PYTHON_SOABI
* Make it conditional on the configured MACHINE. Otherwise needs to be
    reworked to avoid getting the SOABI from python3-native.

  * See:
    4b6bb78633
    https://github.com/ros2/rosidl_python/blob/master/python_cmake_module/cmake/Modules/FindPythonExtra.cmake
    https://discourse.ros.org/t/import-error-no-module-named-rclpy-rclpy-cross-compiling/2463/

  * With the patch ros2 cli works well for all listed MACHINE(s):

    root@qemuarm64:~# ros2 topic list
    /parameter_events
    /rosout

     root@qemuarm64:~# ros2 topic pub /chatter std_msgs/String "data: Hello world"
     publisher: beginning loop
     publishing #1: std_msgs.msg.String(data='Hello world')

     publishing #2: std_msgs.msg.String(data='Hello world')

     ...

     root@qemuarm64:~# ros2 topic echo /chatter
     data: Hello world

     data: Hello world

     ...
2019-06-22 18:51:18 -07:00
Herb Kuta 3e83ff8d7b DRAFT ament.bbclass: Dependencies are correctly generated 2019-06-22 18:51:18 -07:00
Herb Kuta be4b674298 DRAFT pythonpath-insane.bbclass: Drop: no longer need to use target path for native Python 2019-06-22 18:51:18 -07:00
Herb Kuta ce93adf9b2 DRAFT *.bbclass: Drop extraneous wildcards in FILES_* assignements 2019-06-22 18:51:18 -07:00
Herb Kuta 0c492afb8a DRAFT ament-python.bbclass: Remove hardcoded /usr/share from FILES_${PN} 2019-06-22 18:51:18 -07:00
Herb Kuta 7eb01a4e34 DRAFT ament.bbclass: Add comment about AMENT_PREFIX_PATH 2019-06-22 18:51:18 -07:00
Herb Kuta c078c2b972 DRAFT *.bbclass: Drop assignments of S (generated recipes set it correctly) 2019-06-22 18:51:18 -07:00
Herb Kuta 07ca9f9384 DRAFT Add ros_ament_python.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta a162ab8068 DRAFT Add ros_cmake.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta b5fc263838 DRAFT Add ros_ament_cmake.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta c2166b9272 DRAFT Add ros_catkin.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 2bfb14d6ca DRAFT Add ros_recipe_now_generated.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta abb5bb4338 DRAFT Add ros_superflore_generated.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta c58d1eb154 DRAFT Add {ros,ros1,ros2}_image.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 1f2294fa9b WIP ros2_distro.bbclass: Fix up build paths in parent_prefix_path files if building for target 2019-06-22 18:51:18 -07:00
JeongBong Seo 18d5b019d8 DRAFT ros2_distro.bbclass: Process *.cmake files for sysroots 2019-06-22 18:51:18 -07:00
Herb Kuta 64236bb734 DRAFT Add ros2_distro.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta ede7b54d8b DRAFT Add ros1_distro.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 6dede967da DRAFT Add ros_distro.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 4b41c28df9 DRAFT ros_component.bbclass: Add default for new setting ROS_CN 2019-06-22 18:51:18 -07:00
Herb Kuta b2cde1d0d3 DRAFT ros_component.bbclass: Use ??= when assigning ROS_BPN, ROS_SPN, ROS_SP 2019-06-22 18:51:18 -07:00
Herb Kuta f9097a0119 DRAFT ros_component.bbclass: Move ROS_BPN, ROS_SPN, ROS_SP into here from other bbclass-s 2019-06-22 18:51:18 -07:00
Herb Kuta 35fe716976 DRAFT Add ros2_component.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta fdcbc72329 DRAFT Add ros1_component.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 4a6d4ee21f DRAFT Add ros_component.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta 00c2eb2b41 DRAFT catkin*.bbclass: ROS_USE_PYTHON3 -> ROS_PYTHON_VERSION
Also ensure PYTHON_DIR is set when only inherit-ing catkin_ros_prefix.bbclass
2019-06-22 18:51:18 -07:00
Herb Kuta 89ce964673 DRAFT catkin_ros_prefix.bbclass: ros_sysroot_preprocess() -> catkin_ros_prefix_sysroot_preprocess() 2019-06-22 18:51:18 -07:00
Herb Kuta 41d0a3bbb0 DRAFT catkin_ros_prefix.bbclass: ROSDISTRO -> ROS_DISTRO 2019-06-22 18:51:18 -07:00
Brian Shin 2c66e130e5 DRAFT ament-python bbclass: Import from lgsvl/meta-ros2@7a2ce1033f
Add missing copyright notice.
2019-06-22 18:51:18 -07:00
Herb Kuta 9deae5f9c1 DRAFT ros.bbclass -> catkin_ros_prefix.bbclass
Not updating recipes under v1-recipes-*
2019-06-22 18:51:18 -07:00
Herb Kuta 32ff26f0da DRAFT Add ros_distro_dashing.bbclass 2019-06-22 18:51:18 -07:00
Herb Kuta c5e21e5f06 DRAFT Add ros_distro_crystal.bbclass 2019-06-22 18:49:35 -07:00
Herb Kuta 766ccbf520 DRAFT Add ros_distro_bouncy.bbclass 2019-06-22 18:49:02 -07:00
Herb Kuta fcbf73710f DRAFT Add ros_distro_melodic.bbclass 2019-06-22 18:48:15 -07:00
Herb Kuta b57e1ac0cd DRAFT Drop autotools-brokensep.bbclass (provided by openemedded-core/meta in morty) 2019-06-12 14:40:07 -07:00
Andrey Kozhanov 3f4b9ff102 ros2msg,ros2topic: move msg files to the main package + add ros2-topic
* web-bridge needs msg to generate js bindings on the fly

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-10-01 14:27:58 +00:00
Andre Goddard Rosa 45de857731 ament.bbclass: Fix wrong suffix 'x86_64-linux-gnu' in native python module shared library
* Fix wrong suffix x86_64-linux-gnu in native python module shared library

* Python native module shared library is cross-compiled for correct
  architecture but filename had an incorrect suffix 'x86_64-linux-gnu'.

  As per python_cmake_module, if PYTHON_SOABI environment variable is not
  defined, it'll query it from native's python sysconfig module.
  https://github.com/ros2/rosidl/blob/master/python_cmake_module/cmake/Modules/FindPythonExtra.cmake

  So adopt a solution similar to the one adopted below, where PYTHON_SOABI
  is set explicitly for our specific build.
  https://github.com/erlerobot/meta-ros2/blob/master/classes/ament.bbclass

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-10-01 14:27:58 +00:00
Dmitry Rozhkov 1de025778a ros2: add initial recipes
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-10-01 14:27:58 +00: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
Dmitry Rozhkov 9909e48046 moveit: Add packages from MoveIt! project
Particularly this commit brings in

* moveit_core;
* moveit_ros_perception;
* moveit_ros_planning;
* moveit_msgs

and their build dependencies like

* object_recognition_msgs;
* srdfdom.

Also they are included into packagegroup-ros-world.bb.

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
2017-03-22 12:34:12 +02:00
Juampe Lopez Cabrera ce5ba479ba Drop obsolete call to sysroot_stage_libdir
It replaces the sysroot_stage_libdir() call as it is no longer available (it was just a wrapper for sysroot_stage_dir() anyway).

See: 80e7e7f78d
2016-05-28 22:48:49 +02:00
Ash Charles 790f56ddba Update from virtclass-native to class-native
As per Section 24.5.15 of the Yocto Manual [1], use of 'virtclass'
overrides has been deprecated since Yocto version 1.6. Update to
the new syntax.

[1] http://www.yoctoproject.org/docs/1.8/mega-manual/mega-manual.html

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2015-05-28 13:14:52 -07: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
Timo Mueller 7e2eb25e51 classes: Generalize construction of ros_prefix
In special situations, the prefix used by yocto is prefixed by an
additional staging dir and thus not always starting at /. The current
class already covered the special case for building native packages, but
was erroneous when trying to build nativesdk packages.

Instead of dealing with these special cases ourselves, we can prefix the
ros_prefix with yocto's base_prefix. This prefix will contain any
additional dirs yocto decides to use and will therefore always result in
valid directory variables automatically.
2015-01-09 13:11:28 +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