Commit Graph

80 Commits

Author SHA1 Message Date
Martin Jansa 89b4239a2a SQUASH ament.bbclass: fix PYTHON_SOABI value 2019-08-15 11:31:25 -07:00
Martin Jansa 488b4baac3 ament.bbclass: use ARCH overrides to set PYTHON_SOABI instead of mapping based on MACHINE
* to fix parsing the recipes with qemuarm

Signed-off-by: Martin Jansa <martin.jansa@lge.com>
2019-07-03 14:25:31 -07:00
Herb Kuta 97686cfbcf DRAFT ros2_image.bbclass: Add ros_image_rm_vendor_lib_symlinks() 2019-07-03 14:25:31 -07:00
Herb Kuta d67e0e9488 DRAFT [thud] Import python3*.bbclass from openembedded-core@02714c105426b0d687620913c1a7401b386428b6 2019-07-03 14:25:21 -07:00
Herb Kuta e4cd33e77a DRAFT ament-python.bbclass: Use ros2_distro.bbclass settings for FILES 2019-07-03 14:25:14 -07:00
Herb Kuta 3e942e77e7 DRAFT ros-insane.bbclass: Make usable by ROS 2 2019-07-03 14:25:13 -07:00
Herb Kuta 772a318126 DRAFT ament.bbclass: Don't remove local_setup.*, environment from what's installed 2019-07-03 14:24:55 -07:00
JeongBong Seo f8463aaa78 DRAFT ament.bbclass: Use ros2_distro.bbclass settings for FILES, FILES-dev 2019-07-03 14:24:55 -07:00
Andre Rosa 192d384233 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-07-03 14:24:54 -07:00
Herb Kuta ed9f19161e DRAFT ament.bbclass: Dependencies are correctly generated 2019-07-03 14:24:54 -07:00
Herb Kuta 8b1d06cf7e DRAFT pythonpath-insane.bbclass: Drop: no longer need to use target path for native Python 2019-07-03 14:24:54 -07:00
Herb Kuta 7c1287611b DRAFT *.bbclass: Drop extraneous wildcards in FILES_* assignements 2019-07-03 14:24:54 -07:00
Herb Kuta 5811e63b7b DRAFT ament-python.bbclass: Remove hardcoded /usr/share from FILES_${PN} 2019-07-03 14:24:54 -07:00
Herb Kuta 725360fc75 DRAFT ament.bbclass: Add comment about AMENT_PREFIX_PATH 2019-07-03 14:24:54 -07:00
Herb Kuta 6518b78bc7 DRAFT *.bbclass: Drop assignments of S (generated recipes set it correctly) 2019-07-03 14:24:54 -07:00
Herb Kuta 8da23051a3 DRAFT Add ros_ament_python.bbclass 2019-07-03 14:24:54 -07:00
Herb Kuta 8b63da7621 DRAFT Add ros_cmake.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 56e68faeaa DRAFT Add ros_ament_cmake.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 200a03414d DRAFT Add ros_catkin.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 08c3c133f7 DRAFT Add ros_recipe_now_generated.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 4803ca0e42 DRAFT Add ros_superflore_generated.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 7e99fdc39a DRAFT Add {ros,ros1,ros2}_image.bbclass 2019-07-03 14:24:53 -07:00
Herb Kuta 20e5531474 WIP ros2_distro.bbclass: Fix up build paths in parent_prefix_path files if building for target 2019-07-03 14:24:53 -07:00
JeongBong Seo 998529ade5 DRAFT ros2_distro.bbclass: Process *.cmake files for sysroots 2019-07-03 14:24:53 -07:00
Herb Kuta 97b9cbf43a DRAFT Add ros2_distro.bbclass 2019-07-03 14:24:52 -07:00
Herb Kuta e91d2f7e40 DRAFT Add ros1_distro.bbclass 2019-07-03 14:24:52 -07:00
Herb Kuta ce290c2c06 DRAFT Add ros_distro.bbclass 2019-07-03 14:24:52 -07:00
Herb Kuta 10dacd8178 DRAFT ros_component.bbclass: Add default for new setting ROS_CN 2019-07-03 14:24:52 -07:00
Herb Kuta 07a8f31cff DRAFT ros_component.bbclass: Use ??= when assigning ROS_BPN, ROS_SPN, ROS_SP 2019-07-03 14:24:52 -07:00
Herb Kuta f1aae31f66 DRAFT ros_component.bbclass: Move ROS_BPN, ROS_SPN, ROS_SP into here from other bbclass-s 2019-07-03 14:24:52 -07:00
Herb Kuta 9e3c042d2b DRAFT Add ros2_component.bbclass 2019-07-03 14:24:52 -07:00
Herb Kuta 079f4e4bd3 DRAFT Add ros1_component.bbclass 2019-07-03 14:24:51 -07:00
Herb Kuta 1dd8e0d015 DRAFT Add ros_component.bbclass 2019-07-03 14:24:51 -07:00
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 3aaff6fd6f DRAFT catkin_ros_prefix.bbclass: ros_sysroot_preprocess() -> catkin_ros_prefix_sysroot_preprocess() 2019-07-03 14:24:51 -07:00
Herb Kuta fbf508ef9c DRAFT catkin_ros_prefix.bbclass: ROSDISTRO -> ROS_DISTRO 2019-07-03 14:24:51 -07:00
Brian Shin 502974512e DRAFT ament-python bbclass: Import from lgsvl/meta-ros2@7a2ce1033f
Add missing copyright notice.
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
Herb Kuta a24fa26b83 DRAFT Add ros_distro_dashing.bbclass 2019-07-03 14:24:47 -07:00
Herb Kuta e8e0cbf5ff DRAFT Add ros_distro_crystal.bbclass 2019-07-03 14:24:46 -07:00
Herb Kuta d5e55a51e9 DRAFT Add ros_distro_bouncy.bbclass 2019-07-03 14:24:45 -07:00
Herb Kuta fe503814e4 DRAFT Add ros_distro_melodic.bbclass 2019-07-03 14:24:44 -07:00
Herb Kuta 2db069cfb7 DRAFT Drop autotools-brokensep.bbclass (provided by openemedded-core/meta in morty) 2019-07-03 14:24:35 -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