From ba413dc2871b0a584b256f697fa4624d0be8cbc5 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 31 Jan 2024 20:50:34 +0000 Subject: [PATCH] Add build files 2024-01-31-2050 --- .github/workflows/build_linux_aarch64.yml | 15365 ++++++++++++++++ activate.bat | 15 + activate.ps1 | 16 + activate.sh | 26 + bld_ament_cmake.bat | 38 + bld_ament_python.bat | 21 + bld_catkin.bat | 80 + bld_catkin_merge.bat | 34 + bld_colcon_merge.bat | 28 + build_ament_cmake.sh | 68 + build_ament_python.sh | 19 + build_catkin.sh | 119 + buildorder.txt | 416 + deactivate.bat | 18 + deactivate.ps1 | 18 + deactivate.sh | 21 + recipes/draco/bld_catkin.bat | 80 + recipes/draco/build_catkin.sh | 119 + recipes/draco/recipe.yaml | 50 + .../ros-noetic-ackermann-msgs/bld_catkin.bat | 80 + .../ros-noetic-ackermann-msgs/build_catkin.sh | 119 + recipes/ros-noetic-ackermann-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 77 + .../ros-noetic-actionlib-msgs/bld_catkin.bat | 80 + .../ros-noetic-actionlib-msgs/build_catkin.sh | 119 + recipes/ros-noetic-actionlib-msgs/recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 59 + recipes/ros-noetic-actionlib/bld_catkin.bat | 80 + recipes/ros-noetic-actionlib/build_catkin.sh | 119 + .../patch/ros-noetic-actionlib.patch | 264 + recipes/ros-noetic-actionlib/recipe.yaml | 68 + recipes/ros-noetic-amcl/bld_catkin.bat | 80 + recipes/ros-noetic-amcl/build_catkin.sh | 119 + recipes/ros-noetic-amcl/recipe.yaml | 78 + recipes/ros-noetic-angles/bld_catkin.bat | 80 + recipes/ros-noetic-angles/build_catkin.sh | 119 + recipes/ros-noetic-angles/recipe.yaml | 51 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-audio-common-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-base-local-planner/recipe.yaml | 89 + recipes/ros-noetic-bond-core/bld_catkin.bat | 80 + recipes/ros-noetic-bond-core/build_catkin.sh | 119 + recipes/ros-noetic-bond-core/recipe.yaml | 54 + recipes/ros-noetic-bond/bld_catkin.bat | 80 + recipes/ros-noetic-bond/build_catkin.sh | 119 + recipes/ros-noetic-bond/recipe.yaml | 54 + recipes/ros-noetic-bondcpp/bld_catkin.bat | 80 + recipes/ros-noetic-bondcpp/build_catkin.sh | 119 + recipes/ros-noetic-bondcpp/recipe.yaml | 61 + recipes/ros-noetic-bondpy/bld_catkin.bat | 80 + recipes/ros-noetic-bondpy/build_catkin.sh | 119 + recipes/ros-noetic-bondpy/recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-camera-calibration/recipe.yaml | 63 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + recipes/ros-noetic-catkin/activate.bat | 15 + recipes/ros-noetic-catkin/activate.ps1 | 16 + recipes/ros-noetic-catkin/activate.sh | 26 + recipes/ros-noetic-catkin/bld_catkin.bat | 80 + recipes/ros-noetic-catkin/build_catkin.sh | 119 + recipes/ros-noetic-catkin/deactivate.bat | 18 + recipes/ros-noetic-catkin/deactivate.ps1 | 18 + recipes/ros-noetic-catkin/deactivate.sh | 21 + .../patch/ros-noetic-catkin.patch | 268 + recipes/ros-noetic-catkin/recipe.yaml | 65 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + .../ros-noetic-class-loader/bld_catkin.bat | 80 + .../ros-noetic-class-loader/build_catkin.sh | 119 + .../patch/ros-noetic-class-loader.patch | 13 + recipes/ros-noetic-class-loader/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../ros-noetic-cmake-modules/bld_catkin.bat | 80 + .../ros-noetic-cmake-modules/build_catkin.sh | 119 + .../patch/ros-noetic-cmake-modules.patch | 23 + recipes/ros-noetic-cmake-modules/recipe.yaml | 52 + .../ros-noetic-code-coverage/bld_catkin.bat | 80 + .../ros-noetic-code-coverage/build_catkin.sh | 119 + recipes/ros-noetic-code-coverage/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-combined-robot-hw/recipe.yaml | 56 + recipes/ros-noetic-common-msgs/bld_catkin.bat | 80 + .../ros-noetic-common-msgs/build_catkin.sh | 119 + recipes/ros-noetic-common-msgs/recipe.yaml | 68 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-common-tutorials/recipe.yaml | 58 + .../ros-noetic-compass-msgs/bld_catkin.bat | 80 + .../ros-noetic-compass-msgs/build_catkin.sh | 119 + recipes/ros-noetic-compass-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../ros-noetic-control-msgs/bld_catkin.bat | 80 + .../ros-noetic-control-msgs/build_catkin.sh | 119 + recipes/ros-noetic-control-msgs/recipe.yaml | 61 + .../ros-noetic-control-toolbox/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-control-toolbox/recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-controller-manager/recipe.yaml | 65 + recipes/ros-noetic-costmap-2d/bld_catkin.bat | 80 + recipes/ros-noetic-costmap-2d/build_catkin.sh | 119 + recipes/ros-noetic-costmap-2d/recipe.yaml | 91 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-costmap-converter.patch | 77 + .../ros-noetic-costmap-converter/recipe.yaml | 70 + recipes/ros-noetic-cpp-common/bld_catkin.bat | 80 + recipes/ros-noetic-cpp-common/build_catkin.sh | 119 + recipes/ros-noetic-cpp-common/recipe.yaml | 54 + .../ros-noetic-cras-cpp-common/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-cras-cpp-common/recipe.yaml | 94 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-cras-docs-common/recipe.yaml | 52 + recipes/ros-noetic-cras-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-cras-msgs/build_catkin.sh | 119 + recipes/ros-noetic-cras-msgs/recipe.yaml | 58 + .../ros-noetic-cras-py-common/bld_catkin.bat | 80 + .../ros-noetic-cras-py-common/build_catkin.sh | 119 + recipes/ros-noetic-cras-py-common/recipe.yaml | 63 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-cras-topic-tools/recipe.yaml | 73 + recipes/ros-noetic-cv-bridge/bld_catkin.bat | 80 + recipes/ros-noetic-cv-bridge/build_catkin.sh | 119 + .../patch/ros-noetic-cv-bridge.patch | 35 + recipes/ros-noetic-cv-bridge/recipe.yaml | 76 + recipes/ros-noetic-cv-camera/bld_catkin.bat | 80 + recipes/ros-noetic-cv-camera/build_catkin.sh | 119 + recipes/ros-noetic-cv-camera/recipe.yaml | 81 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-depth-image-proc/recipe.yaml | 72 + .../ros-noetic-desktop-full/bld_catkin.bat | 80 + .../ros-noetic-desktop-full/build_catkin.sh | 119 + recipes/ros-noetic-desktop-full/recipe.yaml | 54 + recipes/ros-noetic-desktop/bld_catkin.bat | 80 + recipes/ros-noetic-desktop/build_catkin.sh | 119 + recipes/ros-noetic-desktop/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 65 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 59 + .../ros-noetic-diagnostic-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-diagnostic-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-diagnostic-updater.patch | 15 + .../ros-noetic-diagnostic-updater/recipe.yaml | 59 + recipes/ros-noetic-diagnostics/bld_catkin.bat | 80 + .../ros-noetic-diagnostics/build_catkin.sh | 119 + recipes/ros-noetic-diagnostics/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 78 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 67 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 61 + .../ros-noetic-dynamixel-sdk/bld_catkin.bat | 80 + .../ros-noetic-dynamixel-sdk/build_catkin.sh | 119 + recipes/ros-noetic-dynamixel-sdk/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-effort-controllers/recipe.yaml | 77 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-eigen-conversions/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-electronic-io-msgs/recipe.yaml | 56 + .../ros-noetic-electronic-io/bld_catkin.bat | 80 + .../ros-noetic-electronic-io/build_catkin.sh | 119 + recipes/ros-noetic-electronic-io/recipe.yaml | 57 + .../ros-noetic-executive-smach/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-executive-smach/recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-fake-localization/recipe.yaml | 66 + recipes/ros-noetic-fcl/bld_catkin.bat | 80 + recipes/ros-noetic-fcl/build_catkin.sh | 119 + .../ros-noetic-fcl/patch/ros-noetic-fcl.patch | 17 + recipes/ros-noetic-fcl/recipe.yaml | 58 + recipes/ros-noetic-filters/bld_catkin.bat | 80 + recipes/ros-noetic-filters/build_catkin.sh | 119 + .../patch/ros-noetic-filters.patch | 14 + recipes/ros-noetic-filters/recipe.yaml | 63 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 55 + recipes/ros-noetic-franka-msgs/bld_catkin.bat | 80 + .../ros-noetic-franka-msgs/build_catkin.sh | 119 + recipes/ros-noetic-franka-msgs/recipe.yaml | 57 + recipes/ros-noetic-gazebo-dev/bld_catkin.bat | 80 + recipes/ros-noetic-gazebo-dev/build_catkin.sh | 119 + recipes/ros-noetic-gazebo-dev/recipe.yaml | 54 + recipes/ros-noetic-gazebo-msgs/bld_catkin.bat | 80 + .../ros-noetic-gazebo-msgs/build_catkin.sh | 119 + recipes/ros-noetic-gazebo-msgs/recipe.yaml | 62 + .../ros-noetic-gazebo-plugins/bld_catkin.bat | 80 + .../ros-noetic-gazebo-plugins/build_catkin.sh | 119 + .../ros-noetic-gazebo-plugins.linux.patch | 13 + .../patch/ros-noetic-gazebo-plugins.patch | 13 + recipes/ros-noetic-gazebo-plugins/recipe.yaml | 108 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-gazebo-ros-control/recipe.yaml | 74 + .../ros-noetic-gazebo-ros-pkgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-gazebo-ros-pkgs/recipe.yaml | 54 + recipes/ros-noetic-gazebo-ros/bld_catkin.bat | 80 + recipes/ros-noetic-gazebo-ros/build_catkin.sh | 119 + recipes/ros-noetic-gazebo-ros/recipe.yaml | 75 + recipes/ros-noetic-gencpp/bld_catkin.bat | 80 + recipes/ros-noetic-gencpp/build_catkin.sh | 119 + recipes/ros-noetic-gencpp/recipe.yaml | 53 + recipes/ros-noetic-geneus/bld_catkin.bat | 80 + recipes/ros-noetic-geneus/build_catkin.sh | 119 + recipes/ros-noetic-geneus/recipe.yaml | 53 + recipes/ros-noetic-genlisp/bld_catkin.bat | 80 + recipes/ros-noetic-genlisp/build_catkin.sh | 119 + recipes/ros-noetic-genlisp/recipe.yaml | 53 + recipes/ros-noetic-genmsg/bld_catkin.bat | 80 + recipes/ros-noetic-genmsg/build_catkin.sh | 119 + recipes/ros-noetic-genmsg/recipe.yaml | 53 + recipes/ros-noetic-gennodejs/bld_catkin.bat | 80 + recipes/ros-noetic-gennodejs/build_catkin.sh | 119 + recipes/ros-noetic-gennodejs/recipe.yaml | 53 + recipes/ros-noetic-genpy/bld_catkin.bat | 80 + recipes/ros-noetic-genpy/build_catkin.sh | 119 + recipes/ros-noetic-genpy/recipe.yaml | 54 + .../ros-noetic-geographic-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-geographic-msgs/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-geometric-shapes.patch | 13 + .../ros-noetic-geometric-shapes/recipe.yaml | 78 + .../ros-noetic-geometry-msgs/bld_catkin.bat | 80 + .../ros-noetic-geometry-msgs/build_catkin.sh | 119 + recipes/ros-noetic-geometry-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-geometry-tutorials/recipe.yaml | 54 + recipes/ros-noetic-geometry/bld_catkin.bat | 80 + recipes/ros-noetic-geometry/build_catkin.sh | 119 + recipes/ros-noetic-geometry/recipe.yaml | 60 + recipes/ros-noetic-geometry2/bld_catkin.bat | 80 + recipes/ros-noetic-geometry2/build_catkin.sh | 119 + recipes/ros-noetic-geometry2/recipe.yaml | 70 + .../ros-noetic-gl-dependency/bld_catkin.bat | 80 + .../ros-noetic-gl-dependency/build_catkin.sh | 119 + recipes/ros-noetic-gl-dependency/recipe.yaml | 52 + recipes/ros-noetic-gmapping/bld_catkin.bat | 80 + recipes/ros-noetic-gmapping/build_catkin.sh | 119 + .../patch/ros-noetic-gmapping.patch | 13 + recipes/ros-noetic-gmapping/recipe.yaml | 63 + recipes/ros-noetic-gps-common/bld_catkin.bat | 80 + recipes/ros-noetic-gps-common/build_catkin.sh | 119 + recipes/ros-noetic-gps-common/recipe.yaml | 65 + recipes/ros-noetic-graph-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-graph-msgs/build_catkin.sh | 119 + recipes/ros-noetic-graph-msgs/recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 67 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-hardware-interface.patch | 15 + .../ros-noetic-hardware-interface/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-hector-map-tools/recipe.yaml | 54 + .../ros-noetic-hector-nav-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-hector-nav-msgs/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../ros-noetic-image-common/bld_catkin.bat | 80 + .../ros-noetic-image-common/build_catkin.sh | 119 + recipes/ros-noetic-image-common/recipe.yaml | 58 + .../ros-noetic-image-geometry/bld_catkin.bat | 80 + .../ros-noetic-image-geometry/build_catkin.sh | 119 + recipes/ros-noetic-image-geometry/recipe.yaml | 69 + .../ros-noetic-image-pipeline/bld_catkin.bat | 80 + .../ros-noetic-image-pipeline/build_catkin.sh | 119 + recipes/ros-noetic-image-pipeline/recipe.yaml | 64 + recipes/ros-noetic-image-proc/bld_catkin.bat | 80 + recipes/ros-noetic-image-proc/build_catkin.sh | 119 + recipes/ros-noetic-image-proc/recipe.yaml | 69 + .../ros-noetic-image-publisher/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-image-publisher/recipe.yaml | 64 + .../ros-noetic-image-rotate/bld_catkin.bat | 80 + .../ros-noetic-image-rotate/build_catkin.sh | 119 + recipes/ros-noetic-image-rotate/recipe.yaml | 69 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 76 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../ros-noetic-image-transport/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-image-transport/recipe.yaml | 62 + recipes/ros-noetic-image-view/bld_catkin.bat | 80 + recipes/ros-noetic-image-view/build_catkin.sh | 119 + recipes/ros-noetic-image-view/recipe.yaml | 85 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 67 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + recipes/ros-noetic-imu-tools/bld_catkin.bat | 80 + recipes/ros-noetic-imu-tools/build_catkin.sh | 119 + recipes/ros-noetic-imu-tools/recipe.yaml | 56 + .../ros-noetic-imu-transformer/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-imu-transformer/recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...-noetic-interactive-marker-tutorials.patch | 45 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...ros-noetic-joint-state-publisher-gui.patch | 22 + .../recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 78 + recipes/ros-noetic-joy/bld_catkin.bat | 80 + recipes/ros-noetic-joy/build_catkin.sh | 119 + recipes/ros-noetic-joy/recipe.yaml | 58 + .../ros-noetic-kdl-conversions/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-kdl-conversions/recipe.yaml | 54 + .../ros-noetic-kdl-parser-py/bld_catkin.bat | 80 + .../ros-noetic-kdl-parser-py/build_catkin.sh | 119 + recipes/ros-noetic-kdl-parser-py/recipe.yaml | 56 + recipes/ros-noetic-kdl-parser/bld_catkin.bat | 80 + recipes/ros-noetic-kdl-parser/build_catkin.sh | 119 + recipes/ros-noetic-kdl-parser/recipe.yaml | 65 + .../ros-noetic-laser-assembler/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-laser-assembler/recipe.yaml | 68 + .../ros-noetic-laser-filters/bld_catkin.bat | 80 + .../ros-noetic-laser-filters/build_catkin.sh | 119 + recipes/ros-noetic-laser-filters/recipe.yaml | 71 + .../ros-noetic-laser-geometry/bld_catkin.bat | 80 + .../ros-noetic-laser-geometry/build_catkin.sh | 119 + recipes/ros-noetic-laser-geometry/recipe.yaml | 67 + .../ros-noetic-laser-pipeline/bld_catkin.bat | 80 + .../ros-noetic-laser-pipeline/build_catkin.sh | 119 + recipes/ros-noetic-laser-pipeline/recipe.yaml | 56 + recipes/ros-noetic-libg2o/bld_catkin.bat | 80 + recipes/ros-noetic-libg2o/build_catkin.sh | 119 + .../patch/ros-noetic-libg2o.patch | 44 + recipes/ros-noetic-libg2o/recipe.yaml | 72 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-librviz-tutorial.patch | 23 + .../ros-noetic-librviz-tutorial/recipe.yaml | 71 + recipes/ros-noetic-lms1xx/bld_catkin.bat | 80 + recipes/ros-noetic-lms1xx/build_catkin.sh | 119 + recipes/ros-noetic-lms1xx/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 76 + recipes/ros-noetic-map-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-map-msgs/build_catkin.sh | 119 + recipes/ros-noetic-map-msgs/recipe.yaml | 59 + recipes/ros-noetic-map-server/bld_catkin.bat | 80 + recipes/ros-noetic-map-server/build_catkin.sh | 119 + .../patch/ros-noetic-map-server.patch | 20 + recipes/ros-noetic-map-server/recipe.yaml | 70 + recipes/ros-noetic-mavros-msgs/bld_catkin.bat | 80 + .../ros-noetic-mavros-msgs/build_catkin.sh | 119 + recipes/ros-noetic-mavros-msgs/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-mbf-abstract-core/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-mbf-costmap-core/recipe.yaml | 64 + recipes/ros-noetic-mbf-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-mbf-msgs/build_catkin.sh | 119 + recipes/ros-noetic-mbf-msgs/recipe.yaml | 62 + recipes/ros-noetic-mbf-utility/bld_catkin.bat | 80 + .../ros-noetic-mbf-utility/build_catkin.sh | 119 + recipes/ros-noetic-mbf-utility/recipe.yaml | 62 + .../ros-noetic-media-export/bld_catkin.bat | 80 + .../ros-noetic-media-export/build_catkin.sh | 119 + recipes/ros-noetic-media-export/recipe.yaml | 50 + .../ros-noetic-message-filters/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-message-filters/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-message-generation/recipe.yaml | 62 + .../ros-noetic-message-runtime/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-message-runtime/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...s-noetic-microstrain-inertial-driver.patch | 39 + .../recipe.yaml | 86 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 57 + recipes/ros-noetic-mk/bld_catkin.bat | 80 + recipes/ros-noetic-mk/build_catkin.sh | 119 + recipes/ros-noetic-mk/recipe.yaml | 54 + .../ros-noetic-move-base-msgs/bld_catkin.bat | 80 + .../ros-noetic-move-base-msgs/build_catkin.sh | 119 + recipes/ros-noetic-move-base-msgs/recipe.yaml | 57 + recipes/ros-noetic-move-base/bld_catkin.bat | 80 + recipes/ros-noetic-move-base/build_catkin.sh | 119 + recipes/ros-noetic-move-base/recipe.yaml | 88 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-moveit-commander/recipe.yaml | 61 + recipes/ros-noetic-moveit-core/bld_catkin.bat | 80 + .../ros-noetic-moveit-core/build_catkin.sh | 119 + recipes/ros-noetic-moveit-core/recipe.yaml | 122 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-moveit-kinematics/recipe.yaml | 74 + recipes/ros-noetic-moveit-msgs/bld_catkin.bat | 80 + .../ros-noetic-moveit-msgs/build_catkin.sh | 119 + recipes/ros-noetic-moveit-msgs/recipe.yaml | 69 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 72 + .../ros-noetic-moveit-planners/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-moveit-planners/recipe.yaml | 54 + .../ros-noetic-moveit-plugins/bld_catkin.bat | 80 + .../ros-noetic-moveit-plugins/build_catkin.sh | 119 + recipes/ros-noetic-moveit-plugins/recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 50 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 51 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 50 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...urces-prbt-ikfast-manipulator-plugin.patch | 28 + .../recipe.yaml | 63 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 51 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 107 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...noetic-moveit-ros-planning-interface.patch | 87 + .../recipe.yaml | 87 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 85 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 65 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 95 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + recipes/ros-noetic-moveit-ros/bld_catkin.bat | 80 + recipes/ros-noetic-moveit-ros/build_catkin.sh | 119 + recipes/ros-noetic-moveit-ros/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 88 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-moveit-visual-tools.patch | 13 + .../recipe.yaml | 91 + recipes/ros-noetic-moveit/bld_catkin.bat | 80 + recipes/ros-noetic-moveit/build_catkin.sh | 119 + recipes/ros-noetic-moveit/recipe.yaml | 56 + .../ros-noetic-movie-publisher/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-movie-publisher/recipe.yaml | 58 + recipes/ros-noetic-nav-core/bld_catkin.bat | 80 + recipes/ros-noetic-nav-core/build_catkin.sh | 119 + recipes/ros-noetic-nav-core/recipe.yaml | 58 + recipes/ros-noetic-nav-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-nav-msgs/build_catkin.sh | 119 + recipes/ros-noetic-nav-msgs/recipe.yaml | 59 + recipes/ros-noetic-navfn/bld_catkin.bat | 80 + recipes/ros-noetic-navfn/build_catkin.sh | 119 + recipes/ros-noetic-navfn/recipe.yaml | 74 + recipes/ros-noetic-nmea-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-nmea-msgs/build_catkin.sh | 119 + recipes/ros-noetic-nmea-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-nmea-navsat-driver/recipe.yaml | 58 + .../ros-noetic-nodelet-core/bld_catkin.bat | 80 + .../ros-noetic-nodelet-core/build_catkin.sh | 119 + recipes/ros-noetic-nodelet-core/recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 62 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + recipes/ros-noetic-nodelet/bld_catkin.bat | 80 + recipes/ros-noetic-nodelet/build_catkin.sh | 119 + recipes/ros-noetic-nodelet/recipe.yaml | 68 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 63 + .../ros-noetic-octomap-mapping/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-octomap-mapping/recipe.yaml | 52 + .../ros-noetic-octomap-msgs/bld_catkin.bat | 80 + .../ros-noetic-octomap-msgs/build_catkin.sh | 119 + recipes/ros-noetic-octomap-msgs/recipe.yaml | 57 + recipes/ros-noetic-octomap-ros/bld_catkin.bat | 80 + .../ros-noetic-octomap-ros/build_catkin.sh | 119 + recipes/ros-noetic-octomap-ros/recipe.yaml | 58 + .../ros-noetic-octomap-server/bld_catkin.bat | 80 + .../ros-noetic-octomap-server/build_catkin.sh | 119 + .../patch/ros-noetic-octomap-server.patch | 13 + recipes/ros-noetic-octomap-server/recipe.yaml | 78 + recipes/ros-noetic-octomap/bld_catkin.bat | 80 + recipes/ros-noetic-octomap/build_catkin.sh | 119 + .../patch/ros-noetic-octomap.patch | 155 + recipes/ros-noetic-octomap/recipe.yaml | 52 + recipes/ros-noetic-ompl/bld_catkin.bat | 80 + recipes/ros-noetic-ompl/build_catkin.sh | 119 + .../patch/ros-noetic-ompl.patch | 15 + recipes/ros-noetic-ompl/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-openslam-gmapping.patch | 1092 ++ .../ros-noetic-openslam-gmapping/recipe.yaml | 52 + .../ros-noetic-pcl-conversions/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-pcl-conversions/recipe.yaml | 75 + recipes/ros-noetic-pcl-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-pcl-msgs/build_catkin.sh | 119 + recipes/ros-noetic-pcl-msgs/recipe.yaml | 57 + recipes/ros-noetic-pcl-ros/bld_catkin.bat | 80 + recipes/ros-noetic-pcl-ros/build_catkin.sh | 119 + .../patch/ros-noetic-pcl-ros.patch | 985 + recipes/ros-noetic-pcl-ros/recipe.yaml | 104 + .../ros-noetic-perception-pcl/bld_catkin.bat | 80 + .../ros-noetic-perception-pcl/build_catkin.sh | 119 + recipes/ros-noetic-perception-pcl/recipe.yaml | 53 + recipes/ros-noetic-perception/bld_catkin.bat | 80 + recipes/ros-noetic-perception/build_catkin.sh | 119 + recipes/ros-noetic-perception/recipe.yaml | 57 + recipes/ros-noetic-pid/bld_catkin.bat | 80 + recipes/ros-noetic-pid/build_catkin.sh | 119 + recipes/ros-noetic-pid/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...oetic-pilz-industrial-motion-planner.patch | 54 + .../recipe.yaml | 89 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-pluginlib-tutorials.patch | 26 + .../recipe.yaml | 56 + recipes/ros-noetic-pluginlib/bld_catkin.bat | 80 + recipes/ros-noetic-pluginlib/build_catkin.sh | 119 + recipes/ros-noetic-pluginlib/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-point-cloud-color/recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 51 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 74 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 53 + .../ros-noetic-polled-camera/bld_catkin.bat | 80 + .../ros-noetic-polled-camera/build_catkin.sh | 119 + recipes/ros-noetic-polled-camera/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../ros-noetic-pybind11-catkin/activate.bat | 15 + .../ros-noetic-pybind11-catkin/activate.ps1 | 16 + .../ros-noetic-pybind11-catkin/activate.sh | 26 + .../ros-noetic-pybind11-catkin/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-pybind11-catkin/deactivate.bat | 18 + .../ros-noetic-pybind11-catkin/deactivate.ps1 | 18 + .../ros-noetic-pybind11-catkin/deactivate.sh | 21 + .../patch/ros-noetic-pybind11-catkin.patch | 14 + .../ros-noetic-pybind11-catkin/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-python-qt-binding.patch | 229 + .../ros-noetic-python-qt-binding/recipe.yaml | 74 + recipes/ros-noetic-qt-dotgraph/bld_catkin.bat | 80 + .../ros-noetic-qt-dotgraph/build_catkin.sh | 119 + recipes/ros-noetic-qt-dotgraph/recipe.yaml | 54 + recipes/ros-noetic-qt-gui-cpp/bld_catkin.bat | 80 + recipes/ros-noetic-qt-gui-cpp/build_catkin.sh | 119 + .../patch/ros-noetic-qt-gui-cpp.patch | 76 + recipes/ros-noetic-qt-gui-cpp/recipe.yaml | 77 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-qt-gui-py-common/recipe.yaml | 53 + recipes/ros-noetic-qt-gui/bld_catkin.bat | 80 + recipes/ros-noetic-qt-gui/build_catkin.sh | 119 + recipes/ros-noetic-qt-gui/recipe.yaml | 70 + .../ros-noetic-qwt-dependency/bld_catkin.bat | 80 + .../ros-noetic-qwt-dependency/build_catkin.sh | 119 + recipes/ros-noetic-qwt-dependency/recipe.yaml | 50 + recipes/ros-noetic-radar-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-radar-msgs/build_catkin.sh | 119 + recipes/ros-noetic-radar-msgs/recipe.yaml | 58 + .../ros-noetic-random-numbers/bld_catkin.bat | 80 + .../ros-noetic-random-numbers/build_catkin.sh | 119 + .../patch/ros-noetic-random-numbers.patch | 18 + recipes/ros-noetic-random-numbers/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + .../ros-noetic-realtime-tools/bld_catkin.bat | 80 + .../ros-noetic-realtime-tools/build_catkin.sh | 119 + .../patch/ros-noetic-realtime-tools.patch | 30 + recipes/ros-noetic-realtime-tools/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-resource-retriever/recipe.yaml | 59 + recipes/ros-noetic-rgbd-launch/bld_catkin.bat | 80 + .../ros-noetic-rgbd-launch/build_catkin.sh | 119 + recipes/ros-noetic-rgbd-launch/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-robot-body-filter/recipe.yaml | 91 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-robot-localization.patch | 14 + .../ros-noetic-robot-localization/recipe.yaml | 99 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 72 + recipes/ros-noetic-robot/bld_catkin.bat | 80 + recipes/ros-noetic-robot/build_catkin.sh | 119 + recipes/ros-noetic-robot/recipe.yaml | 62 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../ros-noetic-ros-babel-fish/bld_catkin.bat | 80 + .../ros-noetic-ros-babel-fish/build_catkin.sh | 119 + .../patch/ros-noetic-ros-babel-fish.patch | 533 + recipes/ros-noetic-ros-babel-fish/recipe.yaml | 69 + recipes/ros-noetic-ros-base/bld_catkin.bat | 80 + recipes/ros-noetic-ros-base/build_catkin.sh | 119 + recipes/ros-noetic-ros-base/recipe.yaml | 55 + recipes/ros-noetic-ros-comm/bld_catkin.bat | 80 + recipes/ros-noetic-ros-comm/build_catkin.sh | 119 + recipes/ros-noetic-ros-comm/recipe.yaml | 94 + recipes/ros-noetic-ros-control/bld_catkin.bat | 80 + .../ros-noetic-ros-control/build_catkin.sh | 119 + recipes/ros-noetic-ros-control/recipe.yaml | 58 + .../ros-noetic-ros-controllers/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-ros-controllers/recipe.yaml | 61 + recipes/ros-noetic-ros-core/bld_catkin.bat | 80 + recipes/ros-noetic-ros-core/build_catkin.sh | 119 + recipes/ros-noetic-ros-core/recipe.yaml | 74 + .../ros-noetic-ros-environment/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-ros-environment.patch | 10 + .../ros-noetic-ros-environment/recipe.yaml | 52 + recipes/ros-noetic-ros-numpy/bld_catkin.bat | 80 + recipes/ros-noetic-ros-numpy/build_catkin.sh | 119 + .../patch/ros-noetic-ros-numpy.patch | 38 + recipes/ros-noetic-ros-numpy/recipe.yaml | 58 + .../ros-noetic-ros-tutorials/bld_catkin.bat | 80 + .../ros-noetic-ros-tutorials/build_catkin.sh | 119 + recipes/ros-noetic-ros-tutorials/recipe.yaml | 56 + recipes/ros-noetic-ros/bld_catkin.bat | 80 + recipes/ros-noetic-ros/build_catkin.sh | 119 + recipes/ros-noetic-ros/recipe.yaml | 71 + recipes/ros-noetic-rosapi/bld_catkin.bat | 80 + recipes/ros-noetic-rosapi/build_catkin.sh | 119 + recipes/ros-noetic-rosapi/recipe.yaml | 57 + recipes/ros-noetic-rosauth/bld_catkin.bat | 80 + recipes/ros-noetic-rosauth/build_catkin.sh | 119 + recipes/ros-noetic-rosauth/recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 50 + .../ros-noetic-rosbag-storage/bld_catkin.bat | 80 + .../ros-noetic-rosbag-storage/build_catkin.sh | 119 + recipes/ros-noetic-rosbag-storage/recipe.yaml | 74 + recipes/ros-noetic-rosbag/bld_catkin.bat | 80 + recipes/ros-noetic-rosbag/build_catkin.sh | 119 + .../patch/ros-noetic-rosbag.patch | 25 + recipes/ros-noetic-rosbag/recipe.yaml | 77 + .../ros-noetic-rosbash-params/bld_catkin.bat | 80 + .../ros-noetic-rosbash-params/build_catkin.sh | 119 + recipes/ros-noetic-rosbash-params/recipe.yaml | 52 + recipes/ros-noetic-rosbash/bld_catkin.bat | 80 + recipes/ros-noetic-rosbash/build_catkin.sh | 119 + .../patch/ros-noetic-rosbash.patch | 16 + recipes/ros-noetic-rosbash/recipe.yaml | 55 + .../ros-noetic-rosboost-cfg/bld_catkin.bat | 80 + .../ros-noetic-rosboost-cfg/build_catkin.sh | 119 + recipes/ros-noetic-rosboost-cfg/recipe.yaml | 51 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosbridge-library/recipe.yaml | 78 + .../ros-noetic-rosbridge-msgs/bld_catkin.bat | 80 + .../ros-noetic-rosbridge-msgs/build_catkin.sh | 119 + recipes/ros-noetic-rosbridge-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosbridge-server/recipe.yaml | 60 + .../ros-noetic-rosbridge-suite/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosbridge-suite/recipe.yaml | 53 + recipes/ros-noetic-rosbuild/bld_catkin.bat | 80 + recipes/ros-noetic-rosbuild/build_catkin.sh | 119 + recipes/ros-noetic-rosbuild/recipe.yaml | 56 + recipes/ros-noetic-rosclean/bld_catkin.bat | 80 + recipes/ros-noetic-rosclean/build_catkin.sh | 119 + recipes/ros-noetic-rosclean/recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosconsole-bridge/recipe.yaml | 56 + recipes/ros-noetic-rosconsole/bld_catkin.bat | 80 + recipes/ros-noetic-rosconsole/build_catkin.sh | 119 + .../patch/ros-noetic-rosconsole.patch | 630 + recipes/ros-noetic-rosconsole/recipe.yaml | 65 + recipes/ros-noetic-roscpp-core/bld_catkin.bat | 80 + .../ros-noetic-roscpp-core/build_catkin.sh | 119 + recipes/ros-noetic-roscpp-core/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../ros-noetic-roscpp-traits/bld_catkin.bat | 80 + .../ros-noetic-roscpp-traits/build_catkin.sh | 119 + recipes/ros-noetic-roscpp-traits/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-roscpp-tutorials/recipe.yaml | 65 + recipes/ros-noetic-roscpp/bld_catkin.bat | 80 + recipes/ros-noetic-roscpp/build_catkin.sh | 119 + .../patch/ros-noetic-roscpp.patch | 13 + recipes/ros-noetic-roscpp/recipe.yaml | 75 + recipes/ros-noetic-roscreate/bld_catkin.bat | 80 + recipes/ros-noetic-roscreate/build_catkin.sh | 119 + recipes/ros-noetic-roscreate/recipe.yaml | 53 + recipes/ros-noetic-rosdoc-lite/bld_catkin.bat | 80 + .../ros-noetic-rosdoc-lite/build_catkin.sh | 119 + recipes/ros-noetic-rosdoc-lite/recipe.yaml | 59 + .../ros-noetic-rosgraph-msgs/bld_catkin.bat | 80 + .../ros-noetic-rosgraph-msgs/build_catkin.sh | 119 + recipes/ros-noetic-rosgraph-msgs/recipe.yaml | 55 + recipes/ros-noetic-rosgraph/bld_catkin.bat | 80 + recipes/ros-noetic-rosgraph/build_catkin.sh | 119 + .../patch/ros-noetic-rosgraph.patch | 96 + recipes/ros-noetic-rosgraph/recipe.yaml | 56 + recipes/ros-noetic-roslang/bld_catkin.bat | 80 + recipes/ros-noetic-roslang/build_catkin.sh | 119 + recipes/ros-noetic-roslang/recipe.yaml | 53 + recipes/ros-noetic-roslaunch/bld_catkin.bat | 80 + recipes/ros-noetic-roslaunch/build_catkin.sh | 119 + recipes/ros-noetic-roslaunch/recipe.yaml | 61 + recipes/ros-noetic-roslib/bld_catkin.bat | 80 + recipes/ros-noetic-roslib/build_catkin.sh | 119 + recipes/ros-noetic-roslib/recipe.yaml | 58 + recipes/ros-noetic-roslint/bld_catkin.bat | 80 + recipes/ros-noetic-roslint/build_catkin.sh | 119 + recipes/ros-noetic-roslint/recipe.yaml | 50 + recipes/ros-noetic-roslisp/bld_catkin.bat | 80 + recipes/ros-noetic-roslisp/build_catkin.sh | 119 + .../patch/ros-noetic-roslisp.patch | 10 + recipes/ros-noetic-roslisp/recipe.yaml | 64 + recipes/ros-noetic-roslz4/bld_catkin.bat | 80 + recipes/ros-noetic-roslz4/build_catkin.sh | 119 + recipes/ros-noetic-roslz4/recipe.yaml | 54 + recipes/ros-noetic-rosmake/bld_catkin.bat | 80 + recipes/ros-noetic-rosmake/build_catkin.sh | 119 + recipes/ros-noetic-rosmake/recipe.yaml | 53 + recipes/ros-noetic-rosmaster/bld_catkin.bat | 80 + recipes/ros-noetic-rosmaster/build_catkin.sh | 119 + recipes/ros-noetic-rosmaster/recipe.yaml | 52 + recipes/ros-noetic-rosmsg-cpp/bld_catkin.bat | 80 + recipes/ros-noetic-rosmsg-cpp/build_catkin.sh | 119 + recipes/ros-noetic-rosmsg-cpp/recipe.yaml | 58 + recipes/ros-noetic-rosmsg/bld_catkin.bat | 80 + recipes/ros-noetic-rosmsg/build_catkin.sh | 119 + recipes/ros-noetic-rosmsg/recipe.yaml | 60 + recipes/ros-noetic-rosnode/bld_catkin.bat | 80 + recipes/ros-noetic-rosnode/build_catkin.sh | 119 + recipes/ros-noetic-rosnode/recipe.yaml | 55 + recipes/ros-noetic-rosout/bld_catkin.bat | 80 + recipes/ros-noetic-rosout/build_catkin.sh | 119 + recipes/ros-noetic-rosout/recipe.yaml | 54 + recipes/ros-noetic-rospack/bld_catkin.bat | 80 + recipes/ros-noetic-rospack/build_catkin.sh | 119 + .../patch/ros-noetic-rospack.patch | 29 + recipes/ros-noetic-rospack/recipe.yaml | 64 + recipes/ros-noetic-rosparam/bld_catkin.bat | 80 + recipes/ros-noetic-rosparam/build_catkin.sh | 119 + recipes/ros-noetic-rosparam/recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../ros-noetic-rospy-tutorials/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rospy-tutorials/recipe.yaml | 59 + recipes/ros-noetic-rospy/bld_catkin.bat | 80 + recipes/ros-noetic-rospy/build_catkin.sh | 119 + recipes/ros-noetic-rospy/recipe.yaml | 59 + .../ros-noetic-rosserial-msgs/bld_catkin.bat | 80 + .../ros-noetic-rosserial-msgs/build_catkin.sh | 119 + recipes/ros-noetic-rosserial-msgs/recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosserial-python/recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosserial-server/recipe.yaml | 60 + recipes/ros-noetic-rosservice/bld_catkin.bat | 80 + recipes/ros-noetic-rosservice/build_catkin.sh | 119 + recipes/ros-noetic-rosservice/recipe.yaml | 60 + recipes/ros-noetic-rostest/bld_catkin.bat | 80 + recipes/ros-noetic-rostest/build_catkin.sh | 119 + recipes/ros-noetic-rostest/recipe.yaml | 62 + recipes/ros-noetic-rostime/bld_catkin.bat | 80 + recipes/ros-noetic-rostime/build_catkin.sh | 119 + .../patch/ros-noetic-rostime.linux.patch | 13 + recipes/ros-noetic-rostime/recipe.yaml | 56 + recipes/ros-noetic-rostopic/bld_catkin.bat | 80 + recipes/ros-noetic-rostopic/build_catkin.sh | 119 + recipes/ros-noetic-rostopic/recipe.yaml | 57 + recipes/ros-noetic-rosunit/bld_catkin.bat | 80 + recipes/ros-noetic-rosunit/build_catkin.sh | 119 + recipes/ros-noetic-rosunit/recipe.yaml | 53 + recipes/ros-noetic-roswtf/bld_catkin.bat | 80 + recipes/ros-noetic-roswtf/build_catkin.sh | 119 + recipes/ros-noetic-roswtf/recipe.yaml | 63 + .../ros-noetic-rotate-recovery/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rotate-recovery/recipe.yaml | 71 + recipes/ros-noetic-rqt-action/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-action/build_catkin.sh | 119 + recipes/ros-noetic-rqt-action/recipe.yaml | 56 + .../ros-noetic-rqt-bag-plugins/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-bag-plugins/recipe.yaml | 62 + recipes/ros-noetic-rqt-bag/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-bag/build_catkin.sh | 119 + recipes/ros-noetic-rqt-bag/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-common-plugins/recipe.yaml | 71 + recipes/ros-noetic-rqt-console/bld_catkin.bat | 80 + .../ros-noetic-rqt-console/build_catkin.sh | 119 + recipes/ros-noetic-rqt-console/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 55 + recipes/ros-noetic-rqt-dep/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-dep/build_catkin.sh | 119 + recipes/ros-noetic-rqt-dep/recipe.yaml | 58 + recipes/ros-noetic-rqt-graph/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-graph/build_catkin.sh | 119 + recipes/ros-noetic-rqt-graph/recipe.yaml | 62 + recipes/ros-noetic-rqt-gui-cpp/bld_catkin.bat | 80 + .../ros-noetic-rqt-gui-cpp/build_catkin.sh | 119 + .../patch/ros-noetic-rqt-gui-cpp.patch | 23 + recipes/ros-noetic-rqt-gui-cpp/recipe.yaml | 74 + recipes/ros-noetic-rqt-gui-py/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-gui-py/build_catkin.sh | 119 + recipes/ros-noetic-rqt-gui-py/recipe.yaml | 56 + recipes/ros-noetic-rqt-gui/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-gui/build_catkin.sh | 119 + recipes/ros-noetic-rqt-gui/recipe.yaml | 55 + .../ros-noetic-rqt-image-view/bld_catkin.bat | 80 + .../ros-noetic-rqt-image-view/build_catkin.sh | 119 + .../patch/ros-noetic-rqt-image-view.patch | 25 + recipes/ros-noetic-rqt-image-view/recipe.yaml | 79 + recipes/ros-noetic-rqt-launch/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-launch/build_catkin.sh | 119 + recipes/ros-noetic-rqt-launch/recipe.yaml | 64 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-logger-level/recipe.yaml | 58 + recipes/ros-noetic-rqt-moveit/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-moveit/build_catkin.sh | 119 + recipes/ros-noetic-rqt-moveit/recipe.yaml | 60 + recipes/ros-noetic-rqt-msg/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-msg/build_catkin.sh | 119 + recipes/ros-noetic-rqt-msg/recipe.yaml | 59 + .../ros-noetic-rqt-nav-view/bld_catkin.bat | 80 + .../ros-noetic-rqt-nav-view/build_catkin.sh | 119 + recipes/ros-noetic-rqt-nav-view/recipe.yaml | 68 + recipes/ros-noetic-rqt-plot/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-plot/build_catkin.sh | 119 + recipes/ros-noetic-rqt-plot/recipe.yaml | 62 + .../ros-noetic-rqt-pose-view/bld_catkin.bat | 80 + .../ros-noetic-rqt-pose-view/build_catkin.sh | 119 + recipes/ros-noetic-rqt-pose-view/recipe.yaml | 74 + .../ros-noetic-rqt-publisher/bld_catkin.bat | 80 + .../ros-noetic-rqt-publisher/build_catkin.sh | 119 + recipes/ros-noetic-rqt-publisher/recipe.yaml | 58 + .../ros-noetic-rqt-py-common/bld_catkin.bat | 80 + .../ros-noetic-rqt-py-common/build_catkin.sh | 119 + recipes/ros-noetic-rqt-py-common/recipe.yaml | 68 + .../ros-noetic-rqt-py-console/bld_catkin.bat | 80 + .../ros-noetic-rqt-py-console/build_catkin.sh | 119 + recipes/ros-noetic-rqt-py-console/recipe.yaml | 57 + .../ros-noetic-rqt-reconfigure/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-reconfigure/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-robot-monitor/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-robot-plugins/recipe.yaml | 68 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-robot-steering/recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + recipes/ros-noetic-rqt-rviz/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-rviz/build_catkin.sh | 119 + recipes/ros-noetic-rqt-rviz/recipe.yaml | 75 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-service-caller/recipe.yaml | 55 + recipes/ros-noetic-rqt-shell/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-shell/build_catkin.sh | 119 + recipes/ros-noetic-rqt-shell/recipe.yaml | 56 + recipes/ros-noetic-rqt-srv/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-srv/build_catkin.sh | 119 + recipes/ros-noetic-rqt-srv/recipe.yaml | 60 + recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat | 80 + .../ros-noetic-rqt-tf-tree/build_catkin.sh | 119 + recipes/ros-noetic-rqt-tf-tree/recipe.yaml | 61 + recipes/ros-noetic-rqt-top/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-top/build_catkin.sh | 119 + recipes/ros-noetic-rqt-top/recipe.yaml | 55 + recipes/ros-noetic-rqt-topic/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-topic/build_catkin.sh | 119 + recipes/ros-noetic-rqt-topic/recipe.yaml | 56 + recipes/ros-noetic-rqt-web/bld_catkin.bat | 80 + recipes/ros-noetic-rqt-web/build_catkin.sh | 119 + recipes/ros-noetic-rqt-web/recipe.yaml | 57 + recipes/ros-noetic-ruckig/bld_catkin.bat | 80 + recipes/ros-noetic-ruckig/build_catkin.sh | 119 + .../patch/ros-noetic-ruckig.patch | 17 + recipes/ros-noetic-ruckig/recipe.yaml | 51 + .../ros-noetic-rviz-imu-plugin/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../patch/ros-noetic-rviz-imu-plugin.patch | 23 + .../ros-noetic-rviz-imu-plugin/recipe.yaml | 71 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rviz-plugin-tutorials.patch | 23 + .../recipe.yaml | 69 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rviz-visual-tools/recipe.yaml | 99 + recipes/ros-noetic-rviz/bld_catkin.bat | 80 + recipes/ros-noetic-rviz/build_catkin.sh | 119 + .../patch/ros-noetic-rviz.patch | 126 + recipes/ros-noetic-rviz/recipe.yaml | 128 + recipes/ros-noetic-self-test/bld_catkin.bat | 80 + recipes/ros-noetic-self-test/build_catkin.sh | 119 + recipes/ros-noetic-self-test/recipe.yaml | 57 + .../ros-noetic-sensor-filters/bld_catkin.bat | 80 + .../ros-noetic-sensor-filters/build_catkin.sh | 119 + recipes/ros-noetic-sensor-filters/recipe.yaml | 63 + recipes/ros-noetic-sensor-msgs/bld_catkin.bat | 80 + .../ros-noetic-sensor-msgs/build_catkin.sh | 119 + recipes/ros-noetic-sensor-msgs/recipe.yaml | 59 + recipes/ros-noetic-shape-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-shape-msgs/build_catkin.sh | 119 + recipes/ros-noetic-shape-msgs/recipe.yaml | 57 + recipes/ros-noetic-simulators/bld_catkin.bat | 80 + recipes/ros-noetic-simulators/build_catkin.sh | 119 + recipes/ros-noetic-simulators/recipe.yaml | 54 + recipes/ros-noetic-smach-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-smach-msgs/build_catkin.sh | 119 + recipes/ros-noetic-smach-msgs/recipe.yaml | 55 + recipes/ros-noetic-smach-ros/bld_catkin.bat | 80 + recipes/ros-noetic-smach-ros/build_catkin.sh | 119 + recipes/ros-noetic-smach-ros/recipe.yaml | 59 + recipes/ros-noetic-smach/bld_catkin.bat | 80 + recipes/ros-noetic-smach/build_catkin.sh | 119 + recipes/ros-noetic-smach/recipe.yaml | 50 + recipes/ros-noetic-smclib/bld_catkin.bat | 80 + recipes/ros-noetic-smclib/build_catkin.sh | 119 + recipes/ros-noetic-smclib/recipe.yaml | 51 + recipes/ros-noetic-snmp-ros/bld_catkin.bat | 80 + recipes/ros-noetic-snmp-ros/build_catkin.sh | 119 + recipes/ros-noetic-snmp-ros/recipe.yaml | 53 + recipes/ros-noetic-srdfdom/bld_catkin.bat | 80 + recipes/ros-noetic-srdfdom/build_catkin.sh | 119 + recipes/ros-noetic-srdfdom/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + recipes/ros-noetic-std-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-std-msgs/build_catkin.sh | 119 + recipes/ros-noetic-std-msgs/recipe.yaml | 53 + recipes/ros-noetic-std-srvs/bld_catkin.bat | 80 + recipes/ros-noetic-std-srvs/build_catkin.sh | 119 + recipes/ros-noetic-std-srvs/recipe.yaml | 53 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-stereo-image-proc/recipe.yaml | 69 + recipes/ros-noetic-stereo-msgs/bld_catkin.bat | 80 + .../ros-noetic-stereo-msgs/build_catkin.sh | 119 + recipes/ros-noetic-stereo-msgs/recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-teb-local-planner.linux.patch | 33 + .../ros-noetic-teb-local-planner/recipe.yaml | 92 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-teleop-twist-joy/recipe.yaml | 61 + .../ros-noetic-tf-conversions/bld_catkin.bat | 80 + .../ros-noetic-tf-conversions/build_catkin.sh | 119 + recipes/ros-noetic-tf-conversions/recipe.yaml | 61 + .../ros-noetic-tf-remapper-cpp/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-tf-remapper-cpp/recipe.yaml | 58 + recipes/ros-noetic-tf/bld_catkin.bat | 80 + recipes/ros-noetic-tf/build_catkin.sh | 119 + recipes/ros-noetic-tf/recipe.yaml | 75 + recipes/ros-noetic-tf2-bullet/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-bullet/build_catkin.sh | 119 + recipes/ros-noetic-tf2-bullet/recipe.yaml | 57 + recipes/ros-noetic-tf2-client/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-client/build_catkin.sh | 119 + recipes/ros-noetic-tf2-client/recipe.yaml | 59 + recipes/ros-noetic-tf2-eigen/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-eigen/build_catkin.sh | 119 + recipes/ros-noetic-tf2-eigen/recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-tf2-geometry-msgs/recipe.yaml | 62 + recipes/ros-noetic-tf2-kdl/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-kdl/build_catkin.sh | 119 + recipes/ros-noetic-tf2-kdl/recipe.yaml | 61 + recipes/ros-noetic-tf2-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-msgs/build_catkin.sh | 119 + recipes/ros-noetic-tf2-msgs/recipe.yaml | 56 + recipes/ros-noetic-tf2-py/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-py/build_catkin.sh | 119 + recipes/ros-noetic-tf2-py/recipe.yaml | 54 + recipes/ros-noetic-tf2-ros/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-ros/build_catkin.sh | 119 + recipes/ros-noetic-tf2-ros/recipe.yaml | 75 + .../ros-noetic-tf2-sensor-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-tf2-sensor-msgs/recipe.yaml | 63 + recipes/ros-noetic-tf2-server/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-server/build_catkin.sh | 119 + recipes/ros-noetic-tf2-server/recipe.yaml | 68 + recipes/ros-noetic-tf2-tools/bld_catkin.bat | 80 + recipes/ros-noetic-tf2-tools/build_catkin.sh | 119 + recipes/ros-noetic-tf2-tools/recipe.yaml | 56 + recipes/ros-noetic-tf2/bld_catkin.bat | 80 + recipes/ros-noetic-tf2/build_catkin.sh | 119 + .../ros-noetic-tf2/patch/ros-noetic-tf2.patch | 12 + recipes/ros-noetic-tf2/recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 69 + recipes/ros-noetic-topic-tools/bld_catkin.bat | 80 + .../ros-noetic-topic-tools/build_catkin.sh | 119 + recipes/ros-noetic-topic-tools/recipe.yaml | 67 + .../ros-noetic-trajectory-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-trajectory-msgs/recipe.yaml | 59 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtle-actionlib/recipe.yaml | 69 + recipes/ros-noetic-turtle-tf/bld_catkin.bat | 80 + recipes/ros-noetic-turtle-tf/build_catkin.sh | 119 + recipes/ros-noetic-turtle-tf/recipe.yaml | 62 + recipes/ros-noetic-turtle-tf2/bld_catkin.bat | 80 + recipes/ros-noetic-turtle-tf2/build_catkin.sh | 119 + recipes/ros-noetic-turtle-tf2/recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-bringup/recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-example/recipe.yaml | 74 + .../ros-noetic-turtlebot3-fake/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-fake/recipe.yaml | 65 + .../ros-noetic-turtlebot3-msgs/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 54 + .../ros-noetic-turtlebot3-slam/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-slam/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-teleop/recipe.yaml | 54 + recipes/ros-noetic-turtlebot3/bld_catkin.bat | 80 + recipes/ros-noetic-turtlebot3/build_catkin.sh | 119 + recipes/ros-noetic-turtlebot3/recipe.yaml | 56 + recipes/ros-noetic-turtlesim/bld_catkin.bat | 80 + recipes/ros-noetic-turtlesim/build_catkin.sh | 119 + recipes/ros-noetic-turtlesim/recipe.yaml | 86 + .../ros-noetic-twist-mux-msgs/bld_catkin.bat | 80 + .../ros-noetic-twist-mux-msgs/build_catkin.sh | 119 + recipes/ros-noetic-twist-mux-msgs/recipe.yaml | 57 + recipes/ros-noetic-twist-mux/bld_catkin.bat | 80 + recipes/ros-noetic-twist-mux/build_catkin.sh | 119 + recipes/ros-noetic-twist-mux/recipe.yaml | 65 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-urdf-parser-plugin/recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-urdf-sim-tutorial/recipe.yaml | 72 + .../ros-noetic-urdf-tutorial/bld_catkin.bat | 80 + .../ros-noetic-urdf-tutorial/build_catkin.sh | 119 + recipes/ros-noetic-urdf-tutorial/recipe.yaml | 61 + recipes/ros-noetic-urdf/bld_catkin.bat | 80 + recipes/ros-noetic-urdf/build_catkin.sh | 119 + recipes/ros-noetic-urdf/recipe.yaml | 67 + recipes/ros-noetic-urdfdom-py/bld_catkin.bat | 80 + recipes/ros-noetic-urdfdom-py/build_catkin.sh | 119 + recipes/ros-noetic-urdfdom-py/recipe.yaml | 54 + recipes/ros-noetic-usb-cam/bld_catkin.bat | 80 + recipes/ros-noetic-usb-cam/build_catkin.sh | 119 + recipes/ros-noetic-usb-cam/recipe.yaml | 66 + recipes/ros-noetic-uuid-msgs/bld_catkin.bat | 80 + recipes/ros-noetic-uuid-msgs/build_catkin.sh | 119 + recipes/ros-noetic-uuid-msgs/recipe.yaml | 55 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 70 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 58 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-velodyne-simulator/recipe.yaml | 52 + .../ros-noetic-vision-opencv/bld_catkin.bat | 80 + .../ros-noetic-vision-opencv/build_catkin.sh | 119 + recipes/ros-noetic-vision-opencv/recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 54 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-visualization-msgs/recipe.yaml | 57 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 60 + recipes/ros-noetic-viz/bld_catkin.bat | 80 + recipes/ros-noetic-viz/build_catkin.sh | 119 + recipes/ros-noetic-viz/recipe.yaml | 54 + recipes/ros-noetic-voxel-grid/bld_catkin.bat | 80 + recipes/ros-noetic-voxel-grid/build_catkin.sh | 119 + recipes/ros-noetic-voxel-grid/recipe.yaml | 53 + .../ros-noetic-warehouse-ros/bld_catkin.bat | 80 + .../ros-noetic-warehouse-ros/build_catkin.sh | 119 + recipes/ros-noetic-warehouse-ros/recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-webkit-dependency/recipe.yaml | 51 + recipes/ros-noetic-xacro/bld_catkin.bat | 80 + recipes/ros-noetic-xacro/build_catkin.sh | 119 + recipes/ros-noetic-xacro/recipe.yaml | 54 + recipes/ros-noetic-xmlrpcpp/bld_catkin.bat | 80 + recipes/ros-noetic-xmlrpcpp/build_catkin.sh | 119 + recipes/ros-noetic-xmlrpcpp/recipe.yaml | 55 + vinca.yaml | 187 + vinca_4c9a35f2b8.json | 1 + 1333 files changed, 130917 insertions(+) create mode 100644 .github/workflows/build_linux_aarch64.yml create mode 100644 activate.bat create mode 100644 activate.ps1 create mode 100644 activate.sh create mode 100644 bld_ament_cmake.bat create mode 100644 bld_ament_python.bat create mode 100644 bld_catkin.bat create mode 100644 bld_catkin_merge.bat create mode 100644 bld_colcon_merge.bat create mode 100644 build_ament_cmake.sh create mode 100644 build_ament_python.sh create mode 100644 build_catkin.sh create mode 100644 buildorder.txt create mode 100644 deactivate.bat create mode 100644 deactivate.ps1 create mode 100644 deactivate.sh create mode 100644 recipes/draco/bld_catkin.bat create mode 100644 recipes/draco/build_catkin.sh create mode 100644 recipes/draco/recipe.yaml create mode 100644 recipes/ros-noetic-ackermann-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-ackermann-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-ackermann-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-ackermann-steering-controller/recipe.yaml create mode 100644 recipes/ros-noetic-actionlib-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-actionlib-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-actionlib-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-actionlib-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-actionlib-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-actionlib/bld_catkin.bat create mode 100644 recipes/ros-noetic-actionlib/build_catkin.sh create mode 100644 recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch create mode 100644 recipes/ros-noetic-actionlib/recipe.yaml create mode 100644 recipes/ros-noetic-amcl/bld_catkin.bat create mode 100644 recipes/ros-noetic-amcl/build_catkin.sh create mode 100644 recipes/ros-noetic-amcl/recipe.yaml create mode 100644 recipes/ros-noetic-angles/bld_catkin.bat create mode 100644 recipes/ros-noetic-angles/build_catkin.sh create mode 100644 recipes/ros-noetic-angles/recipe.yaml create mode 100644 recipes/ros-noetic-audio-common-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-audio-common-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-audio-common-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-base-local-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-base-local-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-base-local-planner/recipe.yaml create mode 100644 recipes/ros-noetic-bond-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-bond-core/build_catkin.sh create mode 100644 recipes/ros-noetic-bond-core/recipe.yaml create mode 100644 recipes/ros-noetic-bond/bld_catkin.bat create mode 100644 recipes/ros-noetic-bond/build_catkin.sh create mode 100644 recipes/ros-noetic-bond/recipe.yaml create mode 100644 recipes/ros-noetic-bondcpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-bondcpp/build_catkin.sh create mode 100644 recipes/ros-noetic-bondcpp/recipe.yaml create mode 100644 recipes/ros-noetic-bondpy/bld_catkin.bat create mode 100644 recipes/ros-noetic-bondpy/build_catkin.sh create mode 100644 recipes/ros-noetic-bondpy/recipe.yaml create mode 100644 recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-calibration-parsers/recipe.yaml create mode 100644 recipes/ros-noetic-camera-calibration/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-calibration/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-calibration/recipe.yaml create mode 100644 recipes/ros-noetic-camera-info-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-camera-info-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-camera-info-manager/recipe.yaml create mode 100644 recipes/ros-noetic-catkin/activate.bat create mode 100644 recipes/ros-noetic-catkin/activate.ps1 create mode 100644 recipes/ros-noetic-catkin/activate.sh create mode 100644 recipes/ros-noetic-catkin/bld_catkin.bat create mode 100644 recipes/ros-noetic-catkin/build_catkin.sh create mode 100644 recipes/ros-noetic-catkin/deactivate.bat create mode 100644 recipes/ros-noetic-catkin/deactivate.ps1 create mode 100644 recipes/ros-noetic-catkin/deactivate.sh create mode 100644 recipes/ros-noetic-catkin/patch/ros-noetic-catkin.patch create mode 100644 recipes/ros-noetic-catkin/recipe.yaml create mode 100644 recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-chomp-motion-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-chomp-motion-planner/recipe.yaml create mode 100644 recipes/ros-noetic-class-loader/bld_catkin.bat create mode 100644 recipes/ros-noetic-class-loader/build_catkin.sh create mode 100644 recipes/ros-noetic-class-loader/patch/ros-noetic-class-loader.patch create mode 100644 recipes/ros-noetic-class-loader/recipe.yaml create mode 100644 recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat create mode 100644 recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh create mode 100644 recipes/ros-noetic-clear-costmap-recovery/recipe.yaml create mode 100644 recipes/ros-noetic-cmake-modules/bld_catkin.bat create mode 100644 recipes/ros-noetic-cmake-modules/build_catkin.sh create mode 100644 recipes/ros-noetic-cmake-modules/patch/ros-noetic-cmake-modules.patch create mode 100644 recipes/ros-noetic-cmake-modules/recipe.yaml create mode 100644 recipes/ros-noetic-code-coverage/bld_catkin.bat create mode 100644 recipes/ros-noetic-code-coverage/build_catkin.sh create mode 100644 recipes/ros-noetic-code-coverage/recipe.yaml create mode 100644 recipes/ros-noetic-combined-robot-hw/bld_catkin.bat create mode 100644 recipes/ros-noetic-combined-robot-hw/build_catkin.sh create mode 100644 recipes/ros-noetic-combined-robot-hw/recipe.yaml create mode 100644 recipes/ros-noetic-common-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-common-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-common-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-common-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-common-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-common-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-compass-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-compass-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-compass-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-compressed-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-compressed-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-compressed-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-control-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-control-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-control-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-control-toolbox/bld_catkin.bat create mode 100644 recipes/ros-noetic-control-toolbox/build_catkin.sh create mode 100644 recipes/ros-noetic-control-toolbox/recipe.yaml create mode 100644 recipes/ros-noetic-controller-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-controller-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-controller-interface/recipe.yaml create mode 100644 recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-controller-manager-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-controller-manager-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-costmap-2d/bld_catkin.bat create mode 100644 recipes/ros-noetic-costmap-2d/build_catkin.sh create mode 100644 recipes/ros-noetic-costmap-2d/recipe.yaml create mode 100644 recipes/ros-noetic-costmap-converter/bld_catkin.bat create mode 100644 recipes/ros-noetic-costmap-converter/build_catkin.sh create mode 100644 recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch create mode 100644 recipes/ros-noetic-costmap-converter/recipe.yaml create mode 100644 recipes/ros-noetic-cpp-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-cpp-common/build_catkin.sh create mode 100644 recipes/ros-noetic-cpp-common/recipe.yaml create mode 100644 recipes/ros-noetic-cras-cpp-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-cpp-common/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-cpp-common/recipe.yaml create mode 100644 recipes/ros-noetic-cras-docs-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-docs-common/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-docs-common/recipe.yaml create mode 100644 recipes/ros-noetic-cras-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-cras-py-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-py-common/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-py-common/recipe.yaml create mode 100644 recipes/ros-noetic-cras-relative-positional-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-relative-positional-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-relative-positional-controller/recipe.yaml create mode 100644 recipes/ros-noetic-cras-topic-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-cras-topic-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-cras-topic-tools/recipe.yaml create mode 100644 recipes/ros-noetic-cv-bridge/bld_catkin.bat create mode 100644 recipes/ros-noetic-cv-bridge/build_catkin.sh create mode 100644 recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch create mode 100644 recipes/ros-noetic-cv-bridge/recipe.yaml create mode 100644 recipes/ros-noetic-cv-camera/bld_catkin.bat create mode 100644 recipes/ros-noetic-cv-camera/build_catkin.sh create mode 100644 recipes/ros-noetic-cv-camera/recipe.yaml create mode 100644 recipes/ros-noetic-depth-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-depth-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-depth-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-desktop-full/bld_catkin.bat create mode 100644 recipes/ros-noetic-desktop-full/build_catkin.sh create mode 100644 recipes/ros-noetic-desktop-full/recipe.yaml create mode 100644 recipes/ros-noetic-desktop/bld_catkin.bat create mode 100644 recipes/ros-noetic-desktop/build_catkin.sh create mode 100644 recipes/ros-noetic-desktop/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-aggregator/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-aggregator/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-aggregator/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-analysis/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-analysis/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-analysis/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostic-updater/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostic-updater/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostic-updater/patch/ros-noetic-diagnostic-updater.patch create mode 100644 recipes/ros-noetic-diagnostic-updater/recipe.yaml create mode 100644 recipes/ros-noetic-diagnostics/bld_catkin.bat create mode 100644 recipes/ros-noetic-diagnostics/build_catkin.sh create mode 100644 recipes/ros-noetic-diagnostics/recipe.yaml create mode 100644 recipes/ros-noetic-diff-drive-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-diff-drive-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-diff-drive-controller/recipe.yaml create mode 100644 recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml create mode 100644 recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat create mode 100644 recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh create mode 100644 recipes/ros-noetic-dynamic-reconfigure/recipe.yaml create mode 100644 recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-dynamixel-sdk/bld_catkin.bat create mode 100644 recipes/ros-noetic-dynamixel-sdk/build_catkin.sh create mode 100644 recipes/ros-noetic-dynamixel-sdk/recipe.yaml create mode 100644 recipes/ros-noetic-effort-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-effort-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-effort-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-eigen-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-eigen-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-eigen-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-eigen-stl-containers/bld_catkin.bat create mode 100644 recipes/ros-noetic-eigen-stl-containers/build_catkin.sh create mode 100644 recipes/ros-noetic-eigen-stl-containers/recipe.yaml create mode 100644 recipes/ros-noetic-electronic-io-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-electronic-io-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-electronic-io-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-electronic-io/bld_catkin.bat create mode 100644 recipes/ros-noetic-electronic-io/build_catkin.sh create mode 100644 recipes/ros-noetic-electronic-io/recipe.yaml create mode 100644 recipes/ros-noetic-executive-smach/bld_catkin.bat create mode 100644 recipes/ros-noetic-executive-smach/build_catkin.sh create mode 100644 recipes/ros-noetic-executive-smach/recipe.yaml create mode 100644 recipes/ros-noetic-fake-localization/bld_catkin.bat create mode 100644 recipes/ros-noetic-fake-localization/build_catkin.sh create mode 100644 recipes/ros-noetic-fake-localization/recipe.yaml create mode 100644 recipes/ros-noetic-fcl/bld_catkin.bat create mode 100644 recipes/ros-noetic-fcl/build_catkin.sh create mode 100644 recipes/ros-noetic-fcl/patch/ros-noetic-fcl.patch create mode 100644 recipes/ros-noetic-fcl/recipe.yaml create mode 100644 recipes/ros-noetic-filters/bld_catkin.bat create mode 100644 recipes/ros-noetic-filters/build_catkin.sh create mode 100644 recipes/ros-noetic-filters/patch/ros-noetic-filters.patch create mode 100644 recipes/ros-noetic-filters/recipe.yaml create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml create mode 100644 recipes/ros-noetic-forward-command-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-forward-command-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-forward-command-controller/recipe.yaml create mode 100644 recipes/ros-noetic-four-wheel-steering-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-four-wheel-steering-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-four-wheel-steering-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-franka-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-franka-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-franka-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-dev/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-dev/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-dev/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch create mode 100644 recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch create mode 100644 recipes/ros-noetic-gazebo-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros-control/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros-control/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml create mode 100644 recipes/ros-noetic-gazebo-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-gazebo-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-gazebo-ros/recipe.yaml create mode 100644 recipes/ros-noetic-gencpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-gencpp/build_catkin.sh create mode 100644 recipes/ros-noetic-gencpp/recipe.yaml create mode 100644 recipes/ros-noetic-geneus/bld_catkin.bat create mode 100644 recipes/ros-noetic-geneus/build_catkin.sh create mode 100644 recipes/ros-noetic-geneus/recipe.yaml create mode 100644 recipes/ros-noetic-genlisp/bld_catkin.bat create mode 100644 recipes/ros-noetic-genlisp/build_catkin.sh create mode 100644 recipes/ros-noetic-genlisp/recipe.yaml create mode 100644 recipes/ros-noetic-genmsg/bld_catkin.bat create mode 100644 recipes/ros-noetic-genmsg/build_catkin.sh create mode 100644 recipes/ros-noetic-genmsg/recipe.yaml create mode 100644 recipes/ros-noetic-gennodejs/bld_catkin.bat create mode 100644 recipes/ros-noetic-gennodejs/build_catkin.sh create mode 100644 recipes/ros-noetic-gennodejs/recipe.yaml create mode 100644 recipes/ros-noetic-genpy/bld_catkin.bat create mode 100644 recipes/ros-noetic-genpy/build_catkin.sh create mode 100644 recipes/ros-noetic-genpy/recipe.yaml create mode 100644 recipes/ros-noetic-geographic-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-geographic-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-geographic-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-geometric-shapes/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometric-shapes/build_catkin.sh create mode 100644 recipes/ros-noetic-geometric-shapes/patch/ros-noetic-geometric-shapes.patch create mode 100644 recipes/ros-noetic-geometric-shapes/recipe.yaml create mode 100644 recipes/ros-noetic-geometry-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-geometry-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-geometry2/bld_catkin.bat create mode 100644 recipes/ros-noetic-geometry2/build_catkin.sh create mode 100644 recipes/ros-noetic-geometry2/recipe.yaml create mode 100644 recipes/ros-noetic-gl-dependency/bld_catkin.bat create mode 100644 recipes/ros-noetic-gl-dependency/build_catkin.sh create mode 100644 recipes/ros-noetic-gl-dependency/recipe.yaml create mode 100644 recipes/ros-noetic-gmapping/bld_catkin.bat create mode 100644 recipes/ros-noetic-gmapping/build_catkin.sh create mode 100644 recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch create mode 100644 recipes/ros-noetic-gmapping/recipe.yaml create mode 100644 recipes/ros-noetic-gps-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-gps-common/build_catkin.sh create mode 100644 recipes/ros-noetic-gps-common/recipe.yaml create mode 100644 recipes/ros-noetic-graph-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-graph-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-graph-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-gripper-action-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-gripper-action-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-gripper-action-controller/recipe.yaml create mode 100644 recipes/ros-noetic-hardware-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-hardware-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-hardware-interface/patch/ros-noetic-hardware-interface.patch create mode 100644 recipes/ros-noetic-hardware-interface/recipe.yaml create mode 100644 recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-hector-map-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-hector-map-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-hector-map-tools/recipe.yaml create mode 100644 recipes/ros-noetic-hector-nav-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-hector-nav-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-hector-nav-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-hector-trajectory-server/build_catkin.sh create mode 100644 recipes/ros-noetic-hector-trajectory-server/recipe.yaml create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh create mode 100644 recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml create mode 100644 recipes/ros-noetic-image-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-common/build_catkin.sh create mode 100644 recipes/ros-noetic-image-common/recipe.yaml create mode 100644 recipes/ros-noetic-image-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-image-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-image-pipeline/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-pipeline/build_catkin.sh create mode 100644 recipes/ros-noetic-image-pipeline/recipe.yaml create mode 100644 recipes/ros-noetic-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-image-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-image-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-image-rotate/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-rotate/build_catkin.sh create mode 100644 recipes/ros-noetic-image-rotate/recipe.yaml create mode 100644 recipes/ros-noetic-image-transport-codecs/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-transport-codecs/build_catkin.sh create mode 100644 recipes/ros-noetic-image-transport-codecs/recipe.yaml create mode 100644 recipes/ros-noetic-image-transport-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-transport-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-image-transport-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-image-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-image-view/build_catkin.sh create mode 100644 recipes/ros-noetic-image-view/recipe.yaml create mode 100644 recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-complementary-filter/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-complementary-filter/recipe.yaml create mode 100644 recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-filter-madgwick/recipe.yaml create mode 100644 recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-sensor-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-sensor-controller/recipe.yaml create mode 100644 recipes/ros-noetic-imu-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-tools/recipe.yaml create mode 100644 recipes/ros-noetic-imu-transformer/bld_catkin.bat create mode 100644 recipes/ros-noetic-imu-transformer/build_catkin.sh create mode 100644 recipes/ros-noetic-imu-transformer/recipe.yaml create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch create mode 100644 recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-interactive-marker-twist-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-interactive-marker-twist-server/build_catkin.sh create mode 100644 recipes/ros-noetic-interactive-marker-twist-server/recipe.yaml create mode 100644 recipes/ros-noetic-interactive-markers/bld_catkin.bat create mode 100644 recipes/ros-noetic-interactive-markers/build_catkin.sh create mode 100644 recipes/ros-noetic-interactive-markers/recipe.yaml create mode 100644 recipes/ros-noetic-joint-limits-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-limits-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-limits-interface/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-controller/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch create mode 100644 recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml create mode 100644 recipes/ros-noetic-joint-state-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-state-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-state-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat create mode 100644 recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh create mode 100644 recipes/ros-noetic-joint-trajectory-controller/recipe.yaml create mode 100644 recipes/ros-noetic-joy/bld_catkin.bat create mode 100644 recipes/ros-noetic-joy/build_catkin.sh create mode 100644 recipes/ros-noetic-joy/recipe.yaml create mode 100644 recipes/ros-noetic-kdl-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-kdl-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-kdl-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-kdl-parser-py/bld_catkin.bat create mode 100644 recipes/ros-noetic-kdl-parser-py/build_catkin.sh create mode 100644 recipes/ros-noetic-kdl-parser-py/recipe.yaml create mode 100644 recipes/ros-noetic-kdl-parser/bld_catkin.bat create mode 100644 recipes/ros-noetic-kdl-parser/build_catkin.sh create mode 100644 recipes/ros-noetic-kdl-parser/recipe.yaml create mode 100644 recipes/ros-noetic-laser-assembler/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-assembler/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-assembler/recipe.yaml create mode 100644 recipes/ros-noetic-laser-filters/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-filters/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-filters/recipe.yaml create mode 100644 recipes/ros-noetic-laser-geometry/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-geometry/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-geometry/recipe.yaml create mode 100644 recipes/ros-noetic-laser-pipeline/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-pipeline/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-pipeline/recipe.yaml create mode 100644 recipes/ros-noetic-libg2o/bld_catkin.bat create mode 100644 recipes/ros-noetic-libg2o/build_catkin.sh create mode 100644 recipes/ros-noetic-libg2o/patch/ros-noetic-libg2o.patch create mode 100644 recipes/ros-noetic-libg2o/recipe.yaml create mode 100644 recipes/ros-noetic-librviz-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-librviz-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch create mode 100644 recipes/ros-noetic-librviz-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-lms1xx/bld_catkin.bat create mode 100644 recipes/ros-noetic-lms1xx/build_catkin.sh create mode 100644 recipes/ros-noetic-lms1xx/recipe.yaml create mode 100644 recipes/ros-noetic-magnetometer-compass/bld_catkin.bat create mode 100644 recipes/ros-noetic-magnetometer-compass/build_catkin.sh create mode 100644 recipes/ros-noetic-magnetometer-compass/recipe.yaml create mode 100644 recipes/ros-noetic-map-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-map-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-map-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-map-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-map-server/build_catkin.sh create mode 100644 recipes/ros-noetic-map-server/patch/ros-noetic-map-server.patch create mode 100644 recipes/ros-noetic-map-server/recipe.yaml create mode 100644 recipes/ros-noetic-mavros-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-mavros-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-mavros-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-abstract-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-abstract-core/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-abstract-core/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-costmap-core/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-costmap-core/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-mbf-utility/bld_catkin.bat create mode 100644 recipes/ros-noetic-mbf-utility/build_catkin.sh create mode 100644 recipes/ros-noetic-mbf-utility/recipe.yaml create mode 100644 recipes/ros-noetic-media-export/bld_catkin.bat create mode 100644 recipes/ros-noetic-media-export/build_catkin.sh create mode 100644 recipes/ros-noetic-media-export/recipe.yaml create mode 100644 recipes/ros-noetic-message-filters/bld_catkin.bat create mode 100644 recipes/ros-noetic-message-filters/build_catkin.sh create mode 100644 recipes/ros-noetic-message-filters/recipe.yaml create mode 100644 recipes/ros-noetic-message-generation/bld_catkin.bat create mode 100644 recipes/ros-noetic-message-generation/build_catkin.sh create mode 100644 recipes/ros-noetic-message-generation/recipe.yaml create mode 100644 recipes/ros-noetic-message-runtime/bld_catkin.bat create mode 100644 recipes/ros-noetic-message-runtime/build_catkin.sh create mode 100644 recipes/ros-noetic-message-runtime/recipe.yaml create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch create mode 100644 recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml create mode 100644 recipes/ros-noetic-microstrain-inertial-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-microstrain-inertial-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-microstrain-inertial-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-mk/bld_catkin.bat create mode 100644 recipes/ros-noetic-mk/build_catkin.sh create mode 100644 recipes/ros-noetic-mk/recipe.yaml create mode 100644 recipes/ros-noetic-move-base-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-move-base-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-move-base-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-move-base/bld_catkin.bat create mode 100644 recipes/ros-noetic-move-base/build_catkin.sh create mode 100644 recipes/ros-noetic-move-base/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-commander/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-commander/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-commander/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-core/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-core/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-kinematics/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-kinematics/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-kinematics/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners-chomp/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners-ompl/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-planners/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-planners/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-planners/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-description/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-description/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-panda-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-panda-description/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-panda-description/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-pr2-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-pr2-description/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-pr2-description/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch create mode 100644 recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-resources-prbt-support/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-resources-prbt-support/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-resources-prbt-support/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-move-group/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-perception/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-perception/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch create mode 100644 recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-planning/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-planning/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-visualization/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-ros/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-setup-assistant/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit-visual-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch create mode 100644 recipes/ros-noetic-moveit-visual-tools/recipe.yaml create mode 100644 recipes/ros-noetic-moveit/bld_catkin.bat create mode 100644 recipes/ros-noetic-moveit/build_catkin.sh create mode 100644 recipes/ros-noetic-moveit/recipe.yaml create mode 100644 recipes/ros-noetic-movie-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-movie-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-movie-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-nav-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-nav-core/build_catkin.sh create mode 100644 recipes/ros-noetic-nav-core/recipe.yaml create mode 100644 recipes/ros-noetic-nav-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-nav-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-nav-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-navfn/bld_catkin.bat create mode 100644 recipes/ros-noetic-navfn/build_catkin.sh create mode 100644 recipes/ros-noetic-navfn/recipe.yaml create mode 100644 recipes/ros-noetic-nmea-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-nmea-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-nmea-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-nmea-navsat-driver/bld_catkin.bat create mode 100644 recipes/ros-noetic-nmea-navsat-driver/build_catkin.sh create mode 100644 recipes/ros-noetic-nmea-navsat-driver/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet-core/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet-core/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet-topic-tools/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet-tutorial-math/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet-tutorial-math/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet-tutorial-math/recipe.yaml create mode 100644 recipes/ros-noetic-nodelet/bld_catkin.bat create mode 100644 recipes/ros-noetic-nodelet/build_catkin.sh create mode 100644 recipes/ros-noetic-nodelet/recipe.yaml create mode 100644 recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-object-recognition-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-object-recognition-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-octomap-mapping/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap-mapping/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap-mapping/recipe.yaml create mode 100644 recipes/ros-noetic-octomap-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-octomap-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap-ros/recipe.yaml create mode 100644 recipes/ros-noetic-octomap-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap-server/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch create mode 100644 recipes/ros-noetic-octomap-server/recipe.yaml create mode 100644 recipes/ros-noetic-octomap/bld_catkin.bat create mode 100644 recipes/ros-noetic-octomap/build_catkin.sh create mode 100644 recipes/ros-noetic-octomap/patch/ros-noetic-octomap.patch create mode 100644 recipes/ros-noetic-octomap/recipe.yaml create mode 100644 recipes/ros-noetic-ompl/bld_catkin.bat create mode 100644 recipes/ros-noetic-ompl/build_catkin.sh create mode 100644 recipes/ros-noetic-ompl/patch/ros-noetic-ompl.patch create mode 100644 recipes/ros-noetic-ompl/recipe.yaml create mode 100644 recipes/ros-noetic-openslam-gmapping/bld_catkin.bat create mode 100644 recipes/ros-noetic-openslam-gmapping/build_catkin.sh create mode 100644 recipes/ros-noetic-openslam-gmapping/patch/ros-noetic-openslam-gmapping.patch create mode 100644 recipes/ros-noetic-openslam-gmapping/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-pcl-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-pcl-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch create mode 100644 recipes/ros-noetic-pcl-ros/recipe.yaml create mode 100644 recipes/ros-noetic-perception-pcl/bld_catkin.bat create mode 100644 recipes/ros-noetic-perception-pcl/build_catkin.sh create mode 100644 recipes/ros-noetic-perception-pcl/recipe.yaml create mode 100644 recipes/ros-noetic-perception/bld_catkin.bat create mode 100644 recipes/ros-noetic-perception/build_catkin.sh create mode 100644 recipes/ros-noetic-perception/recipe.yaml create mode 100644 recipes/ros-noetic-pid/bld_catkin.bat create mode 100644 recipes/ros-noetic-pid/build_catkin.sh create mode 100644 recipes/ros-noetic-pid/recipe.yaml create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch create mode 100644 recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml create mode 100644 recipes/ros-noetic-pluginlib-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-pluginlib-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-pluginlib-tutorials/patch/ros-noetic-pluginlib-tutorials.patch create mode 100644 recipes/ros-noetic-pluginlib-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-pluginlib/bld_catkin.bat create mode 100644 recipes/ros-noetic-pluginlib/build_catkin.sh create mode 100644 recipes/ros-noetic-pluginlib/recipe.yaml create mode 100644 recipes/ros-noetic-point-cloud-color/bld_catkin.bat create mode 100644 recipes/ros-noetic-point-cloud-color/build_catkin.sh create mode 100644 recipes/ros-noetic-point-cloud-color/recipe.yaml create mode 100644 recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-point-cloud-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-point-cloud-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-point-cloud-transport/recipe.yaml create mode 100644 recipes/ros-noetic-pointgrey-camera-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-pointgrey-camera-description/build_catkin.sh create mode 100644 recipes/ros-noetic-pointgrey-camera-description/recipe.yaml create mode 100644 recipes/ros-noetic-polled-camera/bld_catkin.bat create mode 100644 recipes/ros-noetic-polled-camera/build_catkin.sh create mode 100644 recipes/ros-noetic-polled-camera/recipe.yaml create mode 100644 recipes/ros-noetic-position-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-position-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-position-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-pybind11-catkin/activate.bat create mode 100644 recipes/ros-noetic-pybind11-catkin/activate.ps1 create mode 100644 recipes/ros-noetic-pybind11-catkin/activate.sh create mode 100644 recipes/ros-noetic-pybind11-catkin/bld_catkin.bat create mode 100644 recipes/ros-noetic-pybind11-catkin/build_catkin.sh create mode 100644 recipes/ros-noetic-pybind11-catkin/deactivate.bat create mode 100644 recipes/ros-noetic-pybind11-catkin/deactivate.ps1 create mode 100644 recipes/ros-noetic-pybind11-catkin/deactivate.sh create mode 100644 recipes/ros-noetic-pybind11-catkin/patch/ros-noetic-pybind11-catkin.patch create mode 100644 recipes/ros-noetic-pybind11-catkin/recipe.yaml create mode 100644 recipes/ros-noetic-python-qt-binding/bld_catkin.bat create mode 100644 recipes/ros-noetic-python-qt-binding/build_catkin.sh create mode 100644 recipes/ros-noetic-python-qt-binding/patch/ros-noetic-python-qt-binding.patch create mode 100644 recipes/ros-noetic-python-qt-binding/recipe.yaml create mode 100644 recipes/ros-noetic-qt-dotgraph/bld_catkin.bat create mode 100644 recipes/ros-noetic-qt-dotgraph/build_catkin.sh create mode 100644 recipes/ros-noetic-qt-dotgraph/recipe.yaml create mode 100644 recipes/ros-noetic-qt-gui-cpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-qt-gui-cpp/build_catkin.sh create mode 100644 recipes/ros-noetic-qt-gui-cpp/patch/ros-noetic-qt-gui-cpp.patch create mode 100644 recipes/ros-noetic-qt-gui-cpp/recipe.yaml create mode 100644 recipes/ros-noetic-qt-gui-py-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-qt-gui-py-common/build_catkin.sh create mode 100644 recipes/ros-noetic-qt-gui-py-common/recipe.yaml create mode 100644 recipes/ros-noetic-qt-gui/bld_catkin.bat create mode 100644 recipes/ros-noetic-qt-gui/build_catkin.sh create mode 100644 recipes/ros-noetic-qt-gui/recipe.yaml create mode 100644 recipes/ros-noetic-qwt-dependency/bld_catkin.bat create mode 100644 recipes/ros-noetic-qwt-dependency/build_catkin.sh create mode 100644 recipes/ros-noetic-qwt-dependency/recipe.yaml create mode 100644 recipes/ros-noetic-radar-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-radar-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-radar-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-random-numbers/bld_catkin.bat create mode 100644 recipes/ros-noetic-random-numbers/build_catkin.sh create mode 100644 recipes/ros-noetic-random-numbers/patch/ros-noetic-random-numbers.patch create mode 100644 recipes/ros-noetic-random-numbers/recipe.yaml create mode 100644 recipes/ros-noetic-realsense2-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-realsense2-description/build_catkin.sh create mode 100644 recipes/ros-noetic-realsense2-description/recipe.yaml create mode 100644 recipes/ros-noetic-realtime-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-realtime-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch create mode 100644 recipes/ros-noetic-realtime-tools/recipe.yaml create mode 100644 recipes/ros-noetic-resource-retriever/bld_catkin.bat create mode 100644 recipes/ros-noetic-resource-retriever/build_catkin.sh create mode 100644 recipes/ros-noetic-resource-retriever/recipe.yaml create mode 100644 recipes/ros-noetic-rgbd-launch/bld_catkin.bat create mode 100644 recipes/ros-noetic-rgbd-launch/build_catkin.sh create mode 100644 recipes/ros-noetic-rgbd-launch/recipe.yaml create mode 100644 recipes/ros-noetic-robot-body-filter/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot-body-filter/build_catkin.sh create mode 100644 recipes/ros-noetic-robot-body-filter/recipe.yaml create mode 100644 recipes/ros-noetic-robot-localization/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot-localization/build_catkin.sh create mode 100644 recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch create mode 100644 recipes/ros-noetic-robot-localization/recipe.yaml create mode 100644 recipes/ros-noetic-robot-state-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot-state-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-robot-state-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-robot/bld_catkin.bat create mode 100644 recipes/ros-noetic-robot/build_catkin.sh create mode 100644 recipes/ros-noetic-robot/recipe.yaml create mode 100644 recipes/ros-noetic-ros-babel-fish-test-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-babel-fish-test-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-babel-fish-test-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-ros-babel-fish/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-babel-fish/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch create mode 100644 recipes/ros-noetic-ros-babel-fish/recipe.yaml create mode 100644 recipes/ros-noetic-ros-base/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-base/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-base/recipe.yaml create mode 100644 recipes/ros-noetic-ros-comm/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-comm/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-comm/recipe.yaml create mode 100644 recipes/ros-noetic-ros-control/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-control/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-control/recipe.yaml create mode 100644 recipes/ros-noetic-ros-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-ros-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-core/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-core/recipe.yaml create mode 100644 recipes/ros-noetic-ros-environment/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-environment/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-environment/patch/ros-noetic-ros-environment.patch create mode 100644 recipes/ros-noetic-ros-environment/recipe.yaml create mode 100644 recipes/ros-noetic-ros-numpy/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-numpy/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-numpy/patch/ros-noetic-ros-numpy.patch create mode 100644 recipes/ros-noetic-ros-numpy/recipe.yaml create mode 100644 recipes/ros-noetic-ros-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-ros/recipe.yaml create mode 100644 recipes/ros-noetic-rosapi/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosapi/build_catkin.sh create mode 100644 recipes/ros-noetic-rosapi/recipe.yaml create mode 100644 recipes/ros-noetic-rosauth/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosauth/build_catkin.sh create mode 100644 recipes/ros-noetic-rosauth/recipe.yaml create mode 100644 recipes/ros-noetic-rosbag-migration-rule/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbag-migration-rule/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbag-migration-rule/recipe.yaml create mode 100644 recipes/ros-noetic-rosbag-storage/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbag-storage/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbag-storage/recipe.yaml create mode 100644 recipes/ros-noetic-rosbag/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbag/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbag/patch/ros-noetic-rosbag.patch create mode 100644 recipes/ros-noetic-rosbag/recipe.yaml create mode 100644 recipes/ros-noetic-rosbash-params/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbash-params/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbash-params/recipe.yaml create mode 100644 recipes/ros-noetic-rosbash/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbash/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbash/patch/ros-noetic-rosbash.patch create mode 100644 recipes/ros-noetic-rosbash/recipe.yaml create mode 100644 recipes/ros-noetic-rosboost-cfg/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosboost-cfg/build_catkin.sh create mode 100644 recipes/ros-noetic-rosboost-cfg/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-library/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-library/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-library/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-server/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-server/recipe.yaml create mode 100644 recipes/ros-noetic-rosbridge-suite/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbridge-suite/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbridge-suite/recipe.yaml create mode 100644 recipes/ros-noetic-rosbuild/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosbuild/build_catkin.sh create mode 100644 recipes/ros-noetic-rosbuild/recipe.yaml create mode 100644 recipes/ros-noetic-rosclean/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosclean/build_catkin.sh create mode 100644 recipes/ros-noetic-rosclean/recipe.yaml create mode 100644 recipes/ros-noetic-rosconsole-bridge/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosconsole-bridge/build_catkin.sh create mode 100644 recipes/ros-noetic-rosconsole-bridge/recipe.yaml create mode 100644 recipes/ros-noetic-rosconsole/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosconsole/build_catkin.sh create mode 100644 recipes/ros-noetic-rosconsole/patch/ros-noetic-rosconsole.patch create mode 100644 recipes/ros-noetic-rosconsole/recipe.yaml create mode 100644 recipes/ros-noetic-roscpp-core/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscpp-core/build_catkin.sh create mode 100644 recipes/ros-noetic-roscpp-core/recipe.yaml create mode 100644 recipes/ros-noetic-roscpp-serialization/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscpp-serialization/build_catkin.sh create mode 100644 recipes/ros-noetic-roscpp-serialization/recipe.yaml create mode 100644 recipes/ros-noetic-roscpp-traits/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscpp-traits/build_catkin.sh create mode 100644 recipes/ros-noetic-roscpp-traits/recipe.yaml create mode 100644 recipes/ros-noetic-roscpp-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscpp-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-roscpp-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-roscpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscpp/build_catkin.sh create mode 100644 recipes/ros-noetic-roscpp/patch/ros-noetic-roscpp.patch create mode 100644 recipes/ros-noetic-roscpp/recipe.yaml create mode 100644 recipes/ros-noetic-roscreate/bld_catkin.bat create mode 100644 recipes/ros-noetic-roscreate/build_catkin.sh create mode 100644 recipes/ros-noetic-roscreate/recipe.yaml create mode 100644 recipes/ros-noetic-rosdoc-lite/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosdoc-lite/build_catkin.sh create mode 100644 recipes/ros-noetic-rosdoc-lite/recipe.yaml create mode 100644 recipes/ros-noetic-rosgraph-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosgraph-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-rosgraph-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-rosgraph/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosgraph/build_catkin.sh create mode 100644 recipes/ros-noetic-rosgraph/patch/ros-noetic-rosgraph.patch create mode 100644 recipes/ros-noetic-rosgraph/recipe.yaml create mode 100644 recipes/ros-noetic-roslang/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslang/build_catkin.sh create mode 100644 recipes/ros-noetic-roslang/recipe.yaml create mode 100644 recipes/ros-noetic-roslaunch/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslaunch/build_catkin.sh create mode 100644 recipes/ros-noetic-roslaunch/recipe.yaml create mode 100644 recipes/ros-noetic-roslib/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslib/build_catkin.sh create mode 100644 recipes/ros-noetic-roslib/recipe.yaml create mode 100644 recipes/ros-noetic-roslint/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslint/build_catkin.sh create mode 100644 recipes/ros-noetic-roslint/recipe.yaml create mode 100644 recipes/ros-noetic-roslisp/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslisp/build_catkin.sh create mode 100644 recipes/ros-noetic-roslisp/patch/ros-noetic-roslisp.patch create mode 100644 recipes/ros-noetic-roslisp/recipe.yaml create mode 100644 recipes/ros-noetic-roslz4/bld_catkin.bat create mode 100644 recipes/ros-noetic-roslz4/build_catkin.sh create mode 100644 recipes/ros-noetic-roslz4/recipe.yaml create mode 100644 recipes/ros-noetic-rosmake/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosmake/build_catkin.sh create mode 100644 recipes/ros-noetic-rosmake/recipe.yaml create mode 100644 recipes/ros-noetic-rosmaster/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosmaster/build_catkin.sh create mode 100644 recipes/ros-noetic-rosmaster/recipe.yaml create mode 100644 recipes/ros-noetic-rosmsg-cpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosmsg-cpp/build_catkin.sh create mode 100644 recipes/ros-noetic-rosmsg-cpp/recipe.yaml create mode 100644 recipes/ros-noetic-rosmsg/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosmsg/build_catkin.sh create mode 100644 recipes/ros-noetic-rosmsg/recipe.yaml create mode 100644 recipes/ros-noetic-rosnode/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosnode/build_catkin.sh create mode 100644 recipes/ros-noetic-rosnode/recipe.yaml create mode 100644 recipes/ros-noetic-rosout/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosout/build_catkin.sh create mode 100644 recipes/ros-noetic-rosout/recipe.yaml create mode 100644 recipes/ros-noetic-rospack/bld_catkin.bat create mode 100644 recipes/ros-noetic-rospack/build_catkin.sh create mode 100644 recipes/ros-noetic-rospack/patch/ros-noetic-rospack.patch create mode 100644 recipes/ros-noetic-rospack/recipe.yaml create mode 100644 recipes/ros-noetic-rosparam/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosparam/build_catkin.sh create mode 100644 recipes/ros-noetic-rosparam/recipe.yaml create mode 100644 recipes/ros-noetic-rospy-message-converter/bld_catkin.bat create mode 100644 recipes/ros-noetic-rospy-message-converter/build_catkin.sh create mode 100644 recipes/ros-noetic-rospy-message-converter/recipe.yaml create mode 100644 recipes/ros-noetic-rospy-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-rospy-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-rospy-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-rospy/bld_catkin.bat create mode 100644 recipes/ros-noetic-rospy/build_catkin.sh create mode 100644 recipes/ros-noetic-rospy/recipe.yaml create mode 100644 recipes/ros-noetic-rosserial-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosserial-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-rosserial-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-rosserial-python/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosserial-python/build_catkin.sh create mode 100644 recipes/ros-noetic-rosserial-python/recipe.yaml create mode 100644 recipes/ros-noetic-rosserial-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosserial-server/build_catkin.sh create mode 100644 recipes/ros-noetic-rosserial-server/recipe.yaml create mode 100644 recipes/ros-noetic-rosservice/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosservice/build_catkin.sh create mode 100644 recipes/ros-noetic-rosservice/recipe.yaml create mode 100644 recipes/ros-noetic-rostest/bld_catkin.bat create mode 100644 recipes/ros-noetic-rostest/build_catkin.sh create mode 100644 recipes/ros-noetic-rostest/recipe.yaml create mode 100644 recipes/ros-noetic-rostime/bld_catkin.bat create mode 100644 recipes/ros-noetic-rostime/build_catkin.sh create mode 100644 recipes/ros-noetic-rostime/patch/ros-noetic-rostime.linux.patch create mode 100644 recipes/ros-noetic-rostime/recipe.yaml create mode 100644 recipes/ros-noetic-rostopic/bld_catkin.bat create mode 100644 recipes/ros-noetic-rostopic/build_catkin.sh create mode 100644 recipes/ros-noetic-rostopic/recipe.yaml create mode 100644 recipes/ros-noetic-rosunit/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosunit/build_catkin.sh create mode 100644 recipes/ros-noetic-rosunit/recipe.yaml create mode 100644 recipes/ros-noetic-roswtf/bld_catkin.bat create mode 100644 recipes/ros-noetic-roswtf/build_catkin.sh create mode 100644 recipes/ros-noetic-roswtf/recipe.yaml create mode 100644 recipes/ros-noetic-rotate-recovery/bld_catkin.bat create mode 100644 recipes/ros-noetic-rotate-recovery/build_catkin.sh create mode 100644 recipes/ros-noetic-rotate-recovery/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-action/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-action/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-action/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-bag-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-bag/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-bag/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-bag/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-common-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-common-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-console/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-console/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-console/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-controller-manager/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-controller-manager/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-dep/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-dep/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-dep/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-graph/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-graph/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-graph/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-gui-cpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-gui-cpp/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-gui-cpp/patch/ros-noetic-rqt-gui-cpp.patch create mode 100644 recipes/ros-noetic-rqt-gui-cpp/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-gui-py/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-gui-py/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-gui-py/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-gui/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-gui/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-gui/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-image-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-image-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch create mode 100644 recipes/ros-noetic-rqt-image-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-launch/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-launch/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-launch/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-logger-level/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-logger-level/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-logger-level/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-moveit/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-moveit/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-moveit/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-msg/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-msg/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-msg/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-nav-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-nav-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-nav-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-plot/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-plot/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-plot/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-pose-view/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-pose-view/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-pose-view/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-publisher/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-py-common/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-py-common/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-py-common/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-py-console/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-py-console/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-py-console/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-reconfigure/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-reconfigure/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-monitor/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-robot-steering/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-robot-steering/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-runtime-monitor/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-runtime-monitor/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-runtime-monitor/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-rviz/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-rviz/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-rviz/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-service-caller/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-service-caller/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-service-caller/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-shell/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-shell/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-shell/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-srv/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-srv/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-srv/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-tf-tree/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-tf-tree/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-top/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-top/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-top/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-topic/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-topic/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-topic/recipe.yaml create mode 100644 recipes/ros-noetic-rqt-web/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-web/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-web/recipe.yaml create mode 100644 recipes/ros-noetic-ruckig/bld_catkin.bat create mode 100644 recipes/ros-noetic-ruckig/build_catkin.sh create mode 100644 recipes/ros-noetic-ruckig/patch/ros-noetic-ruckig.patch create mode 100644 recipes/ros-noetic-ruckig/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch create mode 100644 recipes/ros-noetic-rviz-imu-plugin/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch create mode 100644 recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-python-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz-visual-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz-visual-tools/recipe.yaml create mode 100644 recipes/ros-noetic-rviz/bld_catkin.bat create mode 100644 recipes/ros-noetic-rviz/build_catkin.sh create mode 100644 recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch create mode 100644 recipes/ros-noetic-rviz/recipe.yaml create mode 100644 recipes/ros-noetic-self-test/bld_catkin.bat create mode 100644 recipes/ros-noetic-self-test/build_catkin.sh create mode 100644 recipes/ros-noetic-self-test/recipe.yaml create mode 100644 recipes/ros-noetic-sensor-filters/bld_catkin.bat create mode 100644 recipes/ros-noetic-sensor-filters/build_catkin.sh create mode 100644 recipes/ros-noetic-sensor-filters/recipe.yaml create mode 100644 recipes/ros-noetic-sensor-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-sensor-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-sensor-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-shape-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-shape-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-shape-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-simulators/bld_catkin.bat create mode 100644 recipes/ros-noetic-simulators/build_catkin.sh create mode 100644 recipes/ros-noetic-simulators/recipe.yaml create mode 100644 recipes/ros-noetic-smach-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-smach-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-smach-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-smach-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-smach-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-smach-ros/recipe.yaml create mode 100644 recipes/ros-noetic-smach/bld_catkin.bat create mode 100644 recipes/ros-noetic-smach/build_catkin.sh create mode 100644 recipes/ros-noetic-smach/recipe.yaml create mode 100644 recipes/ros-noetic-smclib/bld_catkin.bat create mode 100644 recipes/ros-noetic-smclib/build_catkin.sh create mode 100644 recipes/ros-noetic-smclib/recipe.yaml create mode 100644 recipes/ros-noetic-snmp-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-snmp-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-snmp-ros/recipe.yaml create mode 100644 recipes/ros-noetic-srdfdom/bld_catkin.bat create mode 100644 recipes/ros-noetic-srdfdom/build_catkin.sh create mode 100644 recipes/ros-noetic-srdfdom/recipe.yaml create mode 100644 recipes/ros-noetic-static-transform-mux/bld_catkin.bat create mode 100644 recipes/ros-noetic-static-transform-mux/build_catkin.sh create mode 100644 recipes/ros-noetic-static-transform-mux/recipe.yaml create mode 100644 recipes/ros-noetic-std-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-std-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-std-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-std-srvs/bld_catkin.bat create mode 100644 recipes/ros-noetic-std-srvs/build_catkin.sh create mode 100644 recipes/ros-noetic-std-srvs/recipe.yaml create mode 100644 recipes/ros-noetic-stereo-image-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-stereo-image-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-stereo-image-proc/recipe.yaml create mode 100644 recipes/ros-noetic-stereo-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-stereo-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-stereo-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-teb-local-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-teb-local-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch create mode 100644 recipes/ros-noetic-teb-local-planner/recipe.yaml create mode 100644 recipes/ros-noetic-teleop-twist-joy/bld_catkin.bat create mode 100644 recipes/ros-noetic-teleop-twist-joy/build_catkin.sh create mode 100644 recipes/ros-noetic-teleop-twist-joy/recipe.yaml create mode 100644 recipes/ros-noetic-tf-conversions/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf-conversions/build_catkin.sh create mode 100644 recipes/ros-noetic-tf-conversions/recipe.yaml create mode 100644 recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh create mode 100644 recipes/ros-noetic-tf-remapper-cpp/recipe.yaml create mode 100644 recipes/ros-noetic-tf/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf/build_catkin.sh create mode 100644 recipes/ros-noetic-tf/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-bullet/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-bullet/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-bullet/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-client/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-client/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-client/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-eigen/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-eigen/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-eigen/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-kdl/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-kdl/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-kdl/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-py/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-py/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-py/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-ros/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-server/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-server/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-server/recipe.yaml create mode 100644 recipes/ros-noetic-tf2-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2-tools/recipe.yaml create mode 100644 recipes/ros-noetic-tf2/bld_catkin.bat create mode 100644 recipes/ros-noetic-tf2/build_catkin.sh create mode 100644 recipes/ros-noetic-tf2/patch/ros-noetic-tf2.patch create mode 100644 recipes/ros-noetic-tf2/recipe.yaml create mode 100644 recipes/ros-noetic-theora-image-transport/bld_catkin.bat create mode 100644 recipes/ros-noetic-theora-image-transport/build_catkin.sh create mode 100644 recipes/ros-noetic-theora-image-transport/recipe.yaml create mode 100644 recipes/ros-noetic-topic-tools/bld_catkin.bat create mode 100644 recipes/ros-noetic-topic-tools/build_catkin.sh create mode 100644 recipes/ros-noetic-topic-tools/recipe.yaml create mode 100644 recipes/ros-noetic-trajectory-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-trajectory-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-trajectory-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-transmission-interface/bld_catkin.bat create mode 100644 recipes/ros-noetic-transmission-interface/build_catkin.sh create mode 100644 recipes/ros-noetic-transmission-interface/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-actionlib/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-actionlib/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-actionlib/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-tf/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-tf/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-tf/recipe.yaml create mode 100644 recipes/ros-noetic-turtle-tf2/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtle-tf2/build_catkin.sh create mode 100644 recipes/ros-noetic-turtle-tf2/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-bringup/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-description/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-description/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-example/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-example/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-example/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-fake/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-fake/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-navigation/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-slam/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-slam/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3-teleop/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-teleop/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-teleop/recipe.yaml create mode 100644 recipes/ros-noetic-turtlebot3/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3/recipe.yaml create mode 100644 recipes/ros-noetic-turtlesim/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlesim/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlesim/recipe.yaml create mode 100644 recipes/ros-noetic-twist-mux-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-twist-mux-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-twist-mux-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-twist-mux/bld_catkin.bat create mode 100644 recipes/ros-noetic-twist-mux/build_catkin.sh create mode 100644 recipes/ros-noetic-twist-mux/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-geometry-parser/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-geometry-parser/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-geometry-parser/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-parser-plugin/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-parser-plugin/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-parser-plugin/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-urdf-tutorial/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf-tutorial/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf-tutorial/recipe.yaml create mode 100644 recipes/ros-noetic-urdf/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdf/build_catkin.sh create mode 100644 recipes/ros-noetic-urdf/recipe.yaml create mode 100644 recipes/ros-noetic-urdfdom-py/bld_catkin.bat create mode 100644 recipes/ros-noetic-urdfdom-py/build_catkin.sh create mode 100644 recipes/ros-noetic-urdfdom-py/recipe.yaml create mode 100644 recipes/ros-noetic-usb-cam/bld_catkin.bat create mode 100644 recipes/ros-noetic-usb-cam/build_catkin.sh create mode 100644 recipes/ros-noetic-usb-cam/recipe.yaml create mode 100644 recipes/ros-noetic-uuid-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-uuid-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-uuid-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-velocity-controllers/bld_catkin.bat create mode 100644 recipes/ros-noetic-velocity-controllers/build_catkin.sh create mode 100644 recipes/ros-noetic-velocity-controllers/recipe.yaml create mode 100644 recipes/ros-noetic-velodyne-description/bld_catkin.bat create mode 100644 recipes/ros-noetic-velodyne-description/build_catkin.sh create mode 100644 recipes/ros-noetic-velodyne-description/recipe.yaml create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh create mode 100644 recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml create mode 100644 recipes/ros-noetic-velodyne-simulator/bld_catkin.bat create mode 100644 recipes/ros-noetic-velodyne-simulator/build_catkin.sh create mode 100644 recipes/ros-noetic-velodyne-simulator/recipe.yaml create mode 100644 recipes/ros-noetic-vision-opencv/bld_catkin.bat create mode 100644 recipes/ros-noetic-vision-opencv/build_catkin.sh create mode 100644 recipes/ros-noetic-vision-opencv/recipe.yaml create mode 100644 recipes/ros-noetic-visualization-marker-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-visualization-marker-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-visualization-marker-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-visualization-msgs/bld_catkin.bat create mode 100644 recipes/ros-noetic-visualization-msgs/build_catkin.sh create mode 100644 recipes/ros-noetic-visualization-msgs/recipe.yaml create mode 100644 recipes/ros-noetic-visualization-tutorials/bld_catkin.bat create mode 100644 recipes/ros-noetic-visualization-tutorials/build_catkin.sh create mode 100644 recipes/ros-noetic-visualization-tutorials/recipe.yaml create mode 100644 recipes/ros-noetic-viz/bld_catkin.bat create mode 100644 recipes/ros-noetic-viz/build_catkin.sh create mode 100644 recipes/ros-noetic-viz/recipe.yaml create mode 100644 recipes/ros-noetic-voxel-grid/bld_catkin.bat create mode 100644 recipes/ros-noetic-voxel-grid/build_catkin.sh create mode 100644 recipes/ros-noetic-voxel-grid/recipe.yaml create mode 100644 recipes/ros-noetic-warehouse-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-warehouse-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-warehouse-ros/recipe.yaml create mode 100644 recipes/ros-noetic-webkit-dependency/bld_catkin.bat create mode 100644 recipes/ros-noetic-webkit-dependency/build_catkin.sh create mode 100644 recipes/ros-noetic-webkit-dependency/recipe.yaml create mode 100644 recipes/ros-noetic-xacro/bld_catkin.bat create mode 100644 recipes/ros-noetic-xacro/build_catkin.sh create mode 100644 recipes/ros-noetic-xacro/recipe.yaml create mode 100644 recipes/ros-noetic-xmlrpcpp/bld_catkin.bat create mode 100644 recipes/ros-noetic-xmlrpcpp/build_catkin.sh create mode 100644 recipes/ros-noetic-xmlrpcpp/recipe.yaml create mode 100644 vinca.yaml create mode 100644 vinca_4c9a35f2b8.json diff --git a/.github/workflows/build_linux_aarch64.yml b/.github/workflows/build_linux_aarch64.yml new file mode 100644 index 000000000..d5fa17eac --- /dev/null +++ b/.github/workflows/build_linux_aarch64.yml @@ -0,0 +1,15365 @@ +jobs: + stage_0_job_0: + name: catkin + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-catkin + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-catkin + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_0_job_1: + name: ruckig + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ruckig + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ruckig + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_0_job_2: + name: ompl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ompl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ompl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_3: + name: cpp-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cpp-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cpp-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_4: + name: genmsg + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-genmsg + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-genmsg + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_5: + name: ros-environment + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-environment + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-environment + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_6: + name: cmake-modules + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cmake-modules + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cmake-modules + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_7: + name: rosmake + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosmake + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosmake + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_8: + name: rosgraph + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosgraph + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosgraph + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_9: + name: rosclean + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosclean + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosclean + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_10: + name: urdf-parser-plugin + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdf-parser-plugin + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdf-parser-plugin + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_11: + name: roslint + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslint + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslint + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_12: + name: media-export + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-media-export + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-media-export + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_13: + name: rosbag-migration-rule + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbag-migration-rule + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbag-migration-rule + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_14: + name: octomap + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_15: + name: random-numbers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-random-numbers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-random-numbers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_16: + name: pybind11-catkin + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pybind11-catkin + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pybind11-catkin + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_17: + name: moveit-resources-pr2-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-pr2-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-pr2-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_18: + name: moveit-resources-fanuc-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-fanuc-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-fanuc-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_19: + name: smclib + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-smclib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-smclib + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_20: + name: gazebo-dev + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-dev + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-dev + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_21: + name: libg2o + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-libg2o + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-libg2o + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_22: + name: code-coverage + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-code-coverage + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-code-coverage + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_23: + name: qwt-dependency + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qwt-dependency + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qwt-dependency + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_24: + name: rosboost-cfg + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosboost-cfg + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosboost-cfg + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_25: + name: openslam-gmapping + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-openslam-gmapping + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-openslam-gmapping + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_26: + name: smach + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-smach + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-smach + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_27: + name: gl-dependency + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gl-dependency + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gl-dependency + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_28: + name: webkit-dependency + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-webkit-dependency + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-webkit-dependency + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_29: + name: draco + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + - stage_0_job_2 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build draco + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: draco + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_30: + name: rostime + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostime + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostime + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_31: + name: genpy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-genpy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-genpy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_32: + name: gennodejs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gennodejs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gennodejs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_33: + name: genlisp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-genlisp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-genlisp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_34: + name: geneus + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geneus + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geneus + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_35: + name: gencpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gencpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gencpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_36: + name: rospack + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rospack + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rospack + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_37: + name: roslang + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslang + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslang + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_38: + name: rosparam + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosparam + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosparam + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_39: + name: rosmaster + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosmaster + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosmaster + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_40: + name: class-loader + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-class-loader + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-class-loader + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_41: + name: fcl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-fcl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-fcl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_42: + name: eigen-stl-containers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-eigen-stl-containers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-eigen-stl-containers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_43: + name: rosdoc-lite + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + - stage_1_job_7 + - stage_1_job_8 + - stage_1_job_9 + - stage_1_job_10 + - stage_1_job_11 + - stage_1_job_12 + - stage_1_job_13 + - stage_1_job_14 + - stage_1_job_15 + - stage_1_job_16 + - stage_1_job_17 + - stage_1_job_18 + - stage_1_job_19 + - stage_1_job_20 + - stage_1_job_21 + - stage_1_job_22 + - stage_1_job_23 + - stage_1_job_24 + - stage_1_job_25 + - stage_1_job_26 + - stage_1_job_27 + - stage_1_job_28 + - stage_1_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosdoc-lite + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosdoc-lite + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_44: + name: roscpp-traits + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-traits + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-traits + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_45: + name: message-generation + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-message-generation + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-message-generation + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_46: + name: roslib + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslib + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_47: + name: xmlrpcpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-xmlrpcpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-xmlrpcpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_48: + name: rosbash + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbash + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbash + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_49: + name: cras-docs-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_2_job_30 + - stage_2_job_31 + - stage_2_job_32 + - stage_2_job_33 + - stage_2_job_34 + - stage_2_job_35 + - stage_2_job_36 + - stage_2_job_37 + - stage_2_job_38 + - stage_2_job_39 + - stage_2_job_40 + - stage_2_job_41 + - stage_2_job_42 + - stage_2_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-docs-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-docs-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_50: + name: roscpp-serialization + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_3_job_44 + - stage_3_job_45 + - stage_3_job_46 + - stage_3_job_47 + - stage_3_job_48 + - stage_3_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-serialization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-serialization + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_51: + name: rosunit + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_3_job_44 + - stage_3_job_45 + - stage_3_job_46 + - stage_3_job_47 + - stage_3_job_48 + - stage_3_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosunit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosunit + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_52: + name: roscreate + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_3_job_44 + - stage_3_job_45 + - stage_3_job_46 + - stage_3_job_47 + - stage_3_job_48 + - stage_3_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscreate + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscreate + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_5_job_53: + name: message-runtime + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_4_job_50 + - stage_4_job_51 + - stage_4_job_52 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-message-runtime + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-message-runtime + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_5_job_54: + name: roslz4 + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_4_job_50 + - stage_4_job_51 + - stage_4_job_52 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslz4 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslz4 + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_5_job_55: + name: angles + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_4_job_50 + - stage_4_job_51 + - stage_4_job_52 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-angles + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-angles + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_5_job_56: + name: roscpp-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_4_job_50 + - stage_4_job_51 + - stage_4_job_52 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_57: + name: std-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_5_job_53 + - stage_5_job_54 + - stage_5_job_55 + - stage_5_job_56 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-std-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-std-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_58: + name: rosbuild + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_5_job_53 + - stage_5_job_54 + - stage_5_job_55 + - stage_5_job_56 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbuild + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbuild + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_59: + name: std-srvs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_5_job_53 + - stage_5_job_54 + - stage_5_job_55 + - stage_5_job_56 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-std-srvs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-std-srvs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_60: + name: rosserial-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_5_job_53 + - stage_5_job_54 + - stage_5_job_55 + - stage_5_job_56 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosserial-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosserial-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_61: + name: rosgraph-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosgraph-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosgraph-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_62: + name: rosconsole + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosconsole + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosconsole + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_63: + name: geometry-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometry-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometry-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_64: + name: actionlib-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-actionlib-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-actionlib-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_65: + name: diagnostic-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_66: + name: python-qt-binding + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-python-qt-binding + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-python-qt-binding + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_67: + name: bond + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bond + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bond + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_68: + name: audio-common-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-audio-common-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-audio-common-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_69: + name: mk + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mk + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mk + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_70: + name: uuid-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-uuid-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-uuid-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_71: + name: smach-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-smach-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-smach-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_72: + name: turtlebot3-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_73: + name: rosbridge-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbridge-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbridge-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_74: + name: nmea-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nmea-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nmea-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_75: + name: compass-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-compass-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-compass-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_76: + name: four-wheel-steering-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-four-wheel-steering-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-four-wheel-steering-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_77: + name: electronic-io-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-electronic-io-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-electronic-io-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_78: + name: ackermann-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_6_job_57 + - stage_6_job_58 + - stage_6_job_59 + - stage_6_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ackermann-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ackermann-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_79: + name: roscpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_80: + name: pluginlib + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pluginlib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pluginlib + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_81: + name: tf2-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_82: + name: rosconsole-bridge + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosconsole-bridge + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosconsole-bridge + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_83: + name: nav-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nav-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nav-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_84: + name: visualization-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_85: + name: resource-retriever + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-resource-retriever + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-resource-retriever + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_86: + name: shape-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-shape-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-shape-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_87: + name: trajectory-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-trajectory-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-trajectory-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_88: + name: octomap-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_89: + name: qt-gui + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qt-gui + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qt-gui + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_90: + name: eigen-conversions + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-eigen-conversions + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-eigen-conversions + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_91: + name: kdl-conversions + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-kdl-conversions + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-kdl-conversions + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_92: + name: qt-gui-py-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qt-gui-py-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qt-gui-py-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_93: + name: move-base-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-move-base-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-move-base-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_94: + name: roslisp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslisp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslisp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_95: + name: ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_96: + name: qt-dotgraph + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qt-dotgraph + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qt-dotgraph + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_97: + name: geographic-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geographic-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geographic-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_98: + name: franka-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-franka-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-franka-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_99: + name: mbf-abstract-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mbf-abstract-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mbf-abstract-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_100: + name: graph-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-graph-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-graph-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_101: + name: ros-babel-fish-test-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-babel-fish-test-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-babel-fish-test-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_102: + name: microstrain-inertial-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-microstrain-inertial-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-microstrain-inertial-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_103: + name: cras-relative-positional-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-relative-positional-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-relative-positional-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_104: + name: rosmsg-cpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosmsg-cpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosmsg-cpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_105: + name: radar-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_7_job_61 + - stage_7_job_62 + - stage_7_job_63 + - stage_7_job_64 + - stage_7_job_65 + - stage_7_job_66 + - stage_7_job_67 + - stage_7_job_68 + - stage_7_job_69 + - stage_7_job_70 + - stage_7_job_71 + - stage_7_job_72 + - stage_7_job_73 + - stage_7_job_74 + - stage_7_job_75 + - stage_7_job_76 + - stage_7_job_77 + - stage_7_job_78 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-radar-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-radar-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_106: + name: rosout + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosout + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosout + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_107: + name: rospy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rospy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rospy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_108: + name: tf2 + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2 + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_109: + name: geometric-shapes + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometric-shapes + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometric-shapes + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_110: + name: voxel-grid + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-voxel-grid + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-voxel-grid + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_111: + name: bondcpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bondcpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bondcpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_112: + name: hardware-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hardware-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hardware-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_113: + name: roscpp-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_114: + name: qt-gui-cpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qt-gui-cpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qt-gui-cpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_115: + name: control-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-control-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-control-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_116: + name: turtlesim + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlesim + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlesim + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_117: + name: hector-nav-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hector-nav-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hector-nav-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_118: + name: hector-map-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hector-map-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hector-map-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_119: + name: visualization-marker-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-marker-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-marker-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_120: + name: pluginlib-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pluginlib-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pluginlib-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_121: + name: mbf-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_8_job_79 + - stage_8_job_80 + - stage_8_job_81 + - stage_8_job_82 + - stage_8_job_83 + - stage_8_job_84 + - stage_8_job_85 + - stage_8_job_86 + - stage_8_job_87 + - stage_8_job_88 + - stage_8_job_89 + - stage_8_job_90 + - stage_8_job_91 + - stage_8_job_92 + - stage_8_job_93 + - stage_8_job_94 + - stage_8_job_95 + - stage_8_job_96 + - stage_8_job_97 + - stage_8_job_98 + - stage_8_job_99 + - stage_8_job_100 + - stage_8_job_101 + - stage_8_job_102 + - stage_8_job_103 + - stage_8_job_104 + - stage_8_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mbf-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mbf-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_122: + name: roslaunch + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslaunch + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslaunch + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_123: + name: tf2-py + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-py + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_124: + name: urdfdom-py + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdfdom-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdfdom-py + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_125: + name: tf2-eigen + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-eigen + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-eigen + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_126: + name: rqt-gui + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-gui + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-gui + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_127: + name: bondpy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bondpy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bondpy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_128: + name: nodelet + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_129: + name: controller-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-controller-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-controller-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_130: + name: transmission-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-transmission-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-transmission-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_131: + name: rosserial-python + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosserial-python + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosserial-python + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_132: + name: turtlebot3-teleop + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-teleop + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-teleop + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_133: + name: combined-robot-hw + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-combined-robot-hw + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-combined-robot-hw + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_134: + name: rospy-message-converter + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rospy-message-converter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rospy-message-converter + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_135: + name: dynamixel-sdk + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-dynamixel-sdk + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-dynamixel-sdk + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_136: + name: rosbash-params + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbash-params + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbash-params + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_137: + name: tf2-bullet + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-bullet + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-bullet + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_138: + name: static-transform-mux + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-static-transform-mux + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-static-transform-mux + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_139: + name: snmp-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_9_job_106 + - stage_9_job_107 + - stage_9_job_108 + - stage_9_job_109 + - stage_9_job_110 + - stage_9_job_111 + - stage_9_job_112 + - stage_9_job_113 + - stage_9_job_114 + - stage_9_job_115 + - stage_9_job_116 + - stage_9_job_117 + - stage_9_job_118 + - stage_9_job_119 + - stage_9_job_120 + - stage_9_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-snmp-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-snmp-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_140: + name: rostest + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_10_job_122 + - stage_10_job_123 + - stage_10_job_124 + - stage_10_job_125 + - stage_10_job_126 + - stage_10_job_127 + - stage_10_job_128 + - stage_10_job_129 + - stage_10_job_130 + - stage_10_job_131 + - stage_10_job_132 + - stage_10_job_133 + - stage_10_job_134 + - stage_10_job_135 + - stage_10_job_136 + - stage_10_job_137 + - stage_10_job_138 + - stage_10_job_139 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostest + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostest + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_141: + name: rqt-gui-py + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_10_job_122 + - stage_10_job_123 + - stage_10_job_124 + - stage_10_job_125 + - stage_10_job_126 + - stage_10_job_127 + - stage_10_job_128 + - stage_10_job_129 + - stage_10_job_130 + - stage_10_job_131 + - stage_10_job_132 + - stage_10_job_133 + - stage_10_job_134 + - stage_10_job_135 + - stage_10_job_136 + - stage_10_job_137 + - stage_10_job_138 + - stage_10_job_139 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-gui-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-gui-py + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_142: + name: rqt-gui-cpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_10_job_122 + - stage_10_job_123 + - stage_10_job_124 + - stage_10_job_125 + - stage_10_job_126 + - stage_10_job_127 + - stage_10_job_128 + - stage_10_job_129 + - stage_10_job_130 + - stage_10_job_131 + - stage_10_job_132 + - stage_10_job_133 + - stage_10_job_134 + - stage_10_job_135 + - stage_10_job_136 + - stage_10_job_137 + - stage_10_job_138 + - stage_10_job_139 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-gui-cpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-gui-cpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_143: + name: bond-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_10_job_122 + - stage_10_job_123 + - stage_10_job_124 + - stage_10_job_125 + - stage_10_job_126 + - stage_10_job_127 + - stage_10_job_128 + - stage_10_job_129 + - stage_10_job_130 + - stage_10_job_131 + - stage_10_job_132 + - stage_10_job_133 + - stage_10_job_134 + - stage_10_job_135 + - stage_10_job_136 + - stage_10_job_137 + - stage_10_job_138 + - stage_10_job_139 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bond-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bond-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_144: + name: nodelet-tutorial-math + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_10_job_122 + - stage_10_job_123 + - stage_10_job_124 + - stage_10_job_125 + - stage_10_job_126 + - stage_10_job_127 + - stage_10_job_128 + - stage_10_job_129 + - stage_10_job_130 + - stage_10_job_131 + - stage_10_job_132 + - stage_10_job_133 + - stage_10_job_134 + - stage_10_job_135 + - stage_10_job_136 + - stage_10_job_137 + - stage_10_job_138 + - stage_10_job_139 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet-tutorial-math + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet-tutorial-math + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_145: + name: topic-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-topic-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-topic-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_146: + name: rosbag-storage + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbag-storage + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbag-storage + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_147: + name: message-filters + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-message-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-message-filters + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_148: + name: urdf + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdf + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_149: + name: xacro + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-xacro + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-xacro + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_150: + name: map-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-map-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-map-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_151: + name: diagnostic-aggregator + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-aggregator + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-aggregator + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_152: + name: diagnostic-updater + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-updater + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-updater + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_153: + name: filters + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-filters + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_154: + name: rospy-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rospy-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rospy-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_155: + name: rqt-runtime-monitor + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-runtime-monitor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-runtime-monitor + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_156: + name: rqt-web + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-web + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-web + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_157: + name: rqt-top + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-top + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-top + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_158: + name: rqt-shell + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-shell + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-shell + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_159: + name: rqt-py-console + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-py-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-py-console + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_160: + name: rosauth + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosauth + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosauth + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_161: + name: kdl-parser-py + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_11_job_140 + - stage_11_job_141 + - stage_11_job_142 + - stage_11_job_143 + - stage_11_job_144 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-kdl-parser-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-kdl-parser-py + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_162: + name: rosbag + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbag + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbag + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_163: + name: kdl-parser + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-kdl-parser + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-kdl-parser + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_164: + name: moveit-resources-panda-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-panda-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-panda-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_165: + name: srdfdom + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-srdfdom + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-srdfdom + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_166: + name: moveit-resources-prbt-support + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-support + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-support + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_167: + name: joint-limits-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-limits-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-limits-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_168: + name: self-test + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-self-test + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-self-test + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_169: + name: rosserial-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosserial-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosserial-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_170: + name: turtlebot3-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_171: + name: velodyne-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_172: + name: realsense2-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-realsense2-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-realsense2-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_173: + name: ros-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_174: + name: urdf-geometry-parser + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_12_job_145 + - stage_12_job_146 + - stage_12_job_147 + - stage_12_job_148 + - stage_12_job_149 + - stage_12_job_150 + - stage_12_job_151 + - stage_12_job_152 + - stage_12_job_153 + - stage_12_job_154 + - stage_12_job_155 + - stage_12_job_156 + - stage_12_job_157 + - stage_12_job_158 + - stage_12_job_159 + - stage_12_job_160 + - stage_12_job_161 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdf-geometry-parser + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdf-geometry-parser + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_175: + name: rostopic + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_13_job_162 + - stage_13_job_163 + - stage_13_job_164 + - stage_13_job_165 + - stage_13_job_166 + - stage_13_job_167 + - stage_13_job_168 + - stage_13_job_169 + - stage_13_job_170 + - stage_13_job_171 + - stage_13_job_172 + - stage_13_job_173 + - stage_13_job_174 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostopic + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostopic + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_176: + name: rosmsg + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_13_job_162 + - stage_13_job_163 + - stage_13_job_164 + - stage_13_job_165 + - stage_13_job_166 + - stage_13_job_167 + - stage_13_job_168 + - stage_13_job_169 + - stage_13_job_170 + - stage_13_job_171 + - stage_13_job_172 + - stage_13_job_173 + - stage_13_job_174 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosmsg + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosmsg + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_177: + name: sensor-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_13_job_162 + - stage_13_job_163 + - stage_13_job_164 + - stage_13_job_165 + - stage_13_job_166 + - stage_13_job_167 + - stage_13_job_168 + - stage_13_job_169 + - stage_13_job_170 + - stage_13_job_171 + - stage_13_job_172 + - stage_13_job_173 + - stage_13_job_174 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-sensor-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-sensor-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_178: + name: diagnostic-analysis + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_13_job_162 + - stage_13_job_163 + - stage_13_job_164 + - stage_13_job_165 + - stage_13_job_166 + - stage_13_job_167 + - stage_13_job_168 + - stage_13_job_169 + - stage_13_job_170 + - stage_13_job_171 + - stage_13_job_172 + - stage_13_job_173 + - stage_13_job_174 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-analysis + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-analysis + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_179: + name: rosnode + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosnode + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosnode + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_180: + name: rosservice + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosservice + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosservice + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_181: + name: map-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-map-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-map-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_182: + name: image-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_183: + name: joint-state-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-state-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_184: + name: object-recognition-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-object-recognition-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-object-recognition-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_185: + name: pcl-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pcl-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pcl-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_186: + name: stereo-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-stereo-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-stereo-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_187: + name: image-geometry + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-geometry + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-geometry + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_188: + name: cv-bridge + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cv-bridge + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cv-bridge + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_189: + name: gazebo-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_190: + name: camera-calibration-parsers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-camera-calibration-parsers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-camera-calibration-parsers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_191: + name: rqt-topic + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-topic + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-topic + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_192: + name: joy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_193: + name: hls-lfcd-lds-driver + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hls-lfcd-lds-driver + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hls-lfcd-lds-driver + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_194: + name: lms1xx + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-lms1xx + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-lms1xx + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_195: + name: rqt-robot-steering + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-robot-steering + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-robot-steering + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_196: + name: cras-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_197: + name: mavros-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mavros-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mavros-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_198: + name: gps-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_14_job_175 + - stage_14_job_176 + - stage_14_job_177 + - stage_14_job_178 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gps-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gps-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_199: + name: actionlib + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-actionlib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-actionlib + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_200: + name: roswtf + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roswtf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roswtf + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_201: + name: joint-state-publisher-gui + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-state-publisher-gui + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-state-publisher-gui + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_202: + name: moveit-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_203: + name: dynamic-reconfigure + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-dynamic-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-dynamic-reconfigure + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_204: + name: rqt-logger-level + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-logger-level + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-logger-level + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_205: + name: pcl-conversions + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pcl-conversions + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pcl-conversions + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_206: + name: rqt-bag + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-bag + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-bag + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_207: + name: controller-manager-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-controller-manager-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-controller-manager-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_208: + name: camera-info-manager + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-camera-info-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-camera-info-manager + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_209: + name: rqt-image-view + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-image-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-image-view + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_210: + name: polled-camera + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-polled-camera + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-polled-camera + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_211: + name: common-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-common-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-common-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_212: + name: rqt-graph + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-graph + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-graph + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_213: + name: rosbridge-library + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbridge-library + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbridge-library + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_214: + name: teleop-twist-joy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-teleop-twist-joy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-teleop-twist-joy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_215: + name: camera-calibration + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-camera-calibration + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-camera-calibration + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_216: + name: vision-opencv + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-vision-opencv + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-vision-opencv + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_217: + name: movie-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-movie-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-movie-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_218: + name: electronic-io + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_15_job_179 + - stage_15_job_180 + - stage_15_job_181 + - stage_15_job_182 + - stage_15_job_183 + - stage_15_job_184 + - stage_15_job_185 + - stage_15_job_186 + - stage_15_job_187 + - stage_15_job_188 + - stage_15_job_189 + - stage_15_job_190 + - stage_15_job_191 + - stage_15_job_192 + - stage_15_job_193 + - stage_15_job_194 + - stage_15_job_195 + - stage_15_job_196 + - stage_15_job_197 + - stage_15_job_198 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-electronic-io + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-electronic-io + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_219: + name: tf2-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_220: + name: rqt-py-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-py-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-py-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_221: + name: nodelet-topic-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet-topic-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet-topic-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_222: + name: realtime-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-realtime-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-realtime-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_223: + name: image-view + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-view + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_224: + name: controller-manager + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-controller-manager + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_225: + name: image-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_226: + name: actionlib-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-actionlib-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-actionlib-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_227: + name: compressed-image-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-compressed-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-compressed-image-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_228: + name: twist-mux-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-twist-mux-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-twist-mux-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_229: + name: compressed-depth-image-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-compressed-depth-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-compressed-depth-image-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_230: + name: ros-comm + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-comm + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-comm + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_231: + name: usb-cam + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-usb-cam + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-usb-cam + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_232: + name: theora-image-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-theora-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-theora-image-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_233: + name: smach-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-smach-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-smach-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_234: + name: rqt-dep + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-dep + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-dep + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_235: + name: rosapi + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosapi + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosapi + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_236: + name: turtle-actionlib + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtle-actionlib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtle-actionlib + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_237: + name: image-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_238: + name: rqt-controller-manager + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-controller-manager + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_239: + name: pid + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pid + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pid + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_240: + name: cv-camera + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_16_job_199 + - stage_16_job_200 + - stage_16_job_201 + - stage_16_job_202 + - stage_16_job_203 + - stage_16_job_204 + - stage_16_job_205 + - stage_16_job_206 + - stage_16_job_207 + - stage_16_job_208 + - stage_16_job_209 + - stage_16_job_210 + - stage_16_job_211 + - stage_16_job_212 + - stage_16_job_213 + - stage_16_job_214 + - stage_16_job_215 + - stage_16_job_216 + - stage_16_job_217 + - stage_16_job_218 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cv-camera + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cv-camera + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_241: + name: tf2-geometry-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-geometry-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-geometry-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_242: + name: tf + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_243: + name: tf2-kdl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-kdl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-kdl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_244: + name: tf2-sensor-msgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-sensor-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-sensor-msgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_245: + name: rqt-console + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-console + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_246: + name: depth-image-proc + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-depth-image-proc + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-depth-image-proc + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_247: + name: image-proc + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-proc + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-proc + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_248: + name: control-toolbox + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-control-toolbox + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-control-toolbox + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_249: + name: forward-command-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-forward-command-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-forward-command-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_250: + name: rqt-robot-monitor + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-robot-monitor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-robot-monitor + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_251: + name: rqt-plot + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-plot + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-plot + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_252: + name: joint-state-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-state-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-state-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_253: + name: twist-mux + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-twist-mux + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-twist-mux + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_254: + name: imu-sensor-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-sensor-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-sensor-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_255: + name: force-torque-sensor-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-force-torque-sensor-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-force-torque-sensor-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_256: + name: ros-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_257: + name: nodelet-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_258: + name: rqt-tf-tree + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-tf-tree + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-tf-tree + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_259: + name: rqt-moveit + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-moveit + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_260: + name: rqt-service-caller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-service-caller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-service-caller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_261: + name: rqt-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_262: + name: executive-smach + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-executive-smach + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-executive-smach + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_263: + name: rosbridge-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbridge-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbridge-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_264: + name: image-transport-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-transport-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-transport-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_265: + name: common-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-common-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-common-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_266: + name: ros-control + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-control + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-control + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_267: + name: tf2-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_268: + name: ros-babel-fish + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-babel-fish + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-babel-fish + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_269: + name: tf2-client + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_17_job_219 + - stage_17_job_220 + - stage_17_job_221 + - stage_17_job_222 + - stage_17_job_223 + - stage_17_job_224 + - stage_17_job_225 + - stage_17_job_226 + - stage_17_job_227 + - stage_17_job_228 + - stage_17_job_229 + - stage_17_job_230 + - stage_17_job_231 + - stage_17_job_232 + - stage_17_job_233 + - stage_17_job_234 + - stage_17_job_235 + - stage_17_job_236 + - stage_17_job_237 + - stage_17_job_238 + - stage_17_job_239 + - stage_17_job_240 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-client + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-client + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_270: + name: laser-geometry + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-geometry + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-geometry + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_271: + name: interactive-markers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-interactive-markers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-interactive-markers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_272: + name: robot-state-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-state-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_273: + name: warehouse-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-warehouse-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-warehouse-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_274: + name: rqt-reconfigure + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-reconfigure + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_275: + name: gazebo-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_276: + name: pcl-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pcl-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pcl-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_277: + name: tf-conversions + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf-conversions + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf-conversions + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_278: + name: rqt-nav-view + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-nav-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-nav-view + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_279: + name: rgbd-launch + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rgbd-launch + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rgbd-launch + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_280: + name: stereo-image-proc + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-stereo-image-proc + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-stereo-image-proc + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_281: + name: amcl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-amcl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-amcl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_282: + name: velocity-controllers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velocity-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velocity-controllers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_283: + name: position-controllers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-position-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-position-controllers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_284: + name: joint-trajectory-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-trajectory-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-trajectory-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_285: + name: diff-drive-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diff-drive-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diff-drive-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_286: + name: octomap-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_287: + name: rqt-msg + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-msg + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-msg + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_288: + name: gmapping + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gmapping + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gmapping + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_289: + name: cras-cpp-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-cpp-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-cpp-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_290: + name: gripper-action-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gripper-action-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gripper-action-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_291: + name: diagnostic-common-diagnostics + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-common-diagnostics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-common-diagnostics + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_292: + name: rqt-pose-view + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-pose-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-pose-view + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_293: + name: rqt-launch + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-launch + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-launch + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_294: + name: rqt-bag-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-bag-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-bag-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_295: + name: mbf-utility + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mbf-utility + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mbf-utility + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_296: + name: robot-localization + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-localization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-localization + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_297: + name: ros-base + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-base + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-base + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_298: + name: image-rotate + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-rotate + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-rotate + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_299: + name: turtle-tf2 + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtle-tf2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtle-tf2 + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_300: + name: turtle-tf + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtle-tf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtle-tf + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_301: + name: imu-filter-madgwick + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-filter-madgwick + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-filter-madgwick + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_302: + name: imu-complementary-filter + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-complementary-filter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-complementary-filter + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_303: + name: fake-localization + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-fake-localization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-fake-localization + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_304: + name: hector-trajectory-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hector-trajectory-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hector-trajectory-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_305: + name: rosbridge-suite + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbridge-suite + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbridge-suite + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_306: + name: imu-transformer + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-transformer + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-transformer + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_307: + name: tf-remapper-cpp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf-remapper-cpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf-remapper-cpp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_308: + name: tf2-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_309: + name: ros-numpy + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-numpy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-numpy + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_310: + name: nmea-navsat-driver + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nmea-navsat-driver + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nmea-navsat-driver + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_311: + name: microstrain-inertial-driver + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-microstrain-inertial-driver + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-microstrain-inertial-driver + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_312: + name: geometry2 + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_18_job_241 + - stage_18_job_242 + - stage_18_job_243 + - stage_18_job_244 + - stage_18_job_245 + - stage_18_job_246 + - stage_18_job_247 + - stage_18_job_248 + - stage_18_job_249 + - stage_18_job_250 + - stage_18_job_251 + - stage_18_job_252 + - stage_18_job_253 + - stage_18_job_254 + - stage_18_job_255 + - stage_18_job_256 + - stage_18_job_257 + - stage_18_job_258 + - stage_18_job_259 + - stage_18_job_260 + - stage_18_job_261 + - stage_18_job_262 + - stage_18_job_263 + - stage_18_job_264 + - stage_18_job_265 + - stage_18_job_266 + - stage_18_job_267 + - stage_18_job_268 + - stage_18_job_269 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometry2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometry2 + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_313: + name: rviz + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_314: + name: moveit-resources-fanuc-moveit-config + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-fanuc-moveit-config + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-fanuc-moveit-config + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_315: + name: costmap-2d + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-costmap-2d + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-costmap-2d + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_316: + name: laser-filters + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-filters + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_317: + name: rqt-robot-dashboard + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-robot-dashboard + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-robot-dashboard + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_318: + name: gazebo-ros-control + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-control + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-control + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_319: + name: hector-gazebo-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hector-gazebo-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hector-gazebo-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_320: + name: gazebo-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_321: + name: effort-controllers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-effort-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-effort-controllers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_322: + name: ackermann-steering-controller + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ackermann-steering-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ackermann-steering-controller + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_323: + name: octomap-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_324: + name: laser-assembler + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-assembler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-assembler + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_325: + name: rqt-srv + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-srv + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-srv + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_326: + name: rqt-action + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-action + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-action + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_327: + name: turtlebot3-bringup + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-bringup + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-bringup + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_328: + name: cras-py-common + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-py-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-py-common + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_329: + name: interactive-marker-twist-server + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-interactive-marker-twist-server + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-interactive-marker-twist-server + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_330: + name: geometry + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometry + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometry + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_331: + name: diagnostics + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostics + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_332: + name: interactive-marker-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-interactive-marker-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-interactive-marker-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_333: + name: pointgrey-camera-description + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pointgrey-camera-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pointgrey-camera-description + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_334: + name: perception-pcl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-perception-pcl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-perception-pcl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_335: + name: image-pipeline + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-pipeline + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-pipeline + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_336: + name: geometry-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometry-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometry-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_337: + name: velodyne-gazebo-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-gazebo-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-gazebo-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_338: + name: turtlebot3-fake + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-fake + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-fake + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_339: + name: magnetometer-compass + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-magnetometer-compass + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-magnetometer-compass + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_340: + name: dynamic-robot-state-publisher + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_19_job_270 + - stage_19_job_271 + - stage_19_job_272 + - stage_19_job_273 + - stage_19_job_274 + - stage_19_job_275 + - stage_19_job_276 + - stage_19_job_277 + - stage_19_job_278 + - stage_19_job_279 + - stage_19_job_280 + - stage_19_job_281 + - stage_19_job_282 + - stage_19_job_283 + - stage_19_job_284 + - stage_19_job_285 + - stage_19_job_286 + - stage_19_job_287 + - stage_19_job_288 + - stage_19_job_289 + - stage_19_job_290 + - stage_19_job_291 + - stage_19_job_292 + - stage_19_job_293 + - stage_19_job_294 + - stage_19_job_295 + - stage_19_job_296 + - stage_19_job_297 + - stage_19_job_298 + - stage_19_job_299 + - stage_19_job_300 + - stage_19_job_301 + - stage_19_job_302 + - stage_19_job_303 + - stage_19_job_304 + - stage_19_job_305 + - stage_19_job_306 + - stage_19_job_307 + - stage_19_job_308 + - stage_19_job_309 + - stage_19_job_310 + - stage_19_job_311 + - stage_19_job_312 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-dynamic-robot-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-dynamic-robot-state-publisher + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_341: + name: moveit-resources-panda-moveit-config + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-panda-moveit-config + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-panda-moveit-config + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_342: + name: nav-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nav-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nav-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_343: + name: rqt-rviz + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-rviz + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-rviz + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_344: + name: ros-controllers + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-controllers + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_345: + name: rqt-common-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-common-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-common-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_346: + name: rviz-python-tutorial + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-python-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-python-tutorial + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_347: + name: rviz-plugin-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-plugin-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-plugin-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_348: + name: librviz-tutorial + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-librviz-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-librviz-tutorial + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_349: + name: cras-topic-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-topic-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-topic-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_350: + name: costmap-converter + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-costmap-converter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-costmap-converter + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_351: + name: urdf-tutorial + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdf-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdf-tutorial + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_352: + name: robot + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_353: + name: gazebo-ros-pkgs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-pkgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-pkgs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_354: + name: laser-pipeline + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-pipeline + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-pipeline + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_355: + name: rviz-imu-plugin + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-imu-plugin + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-imu-plugin + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_356: + name: turtlebot3-slam + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-slam + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-slam + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_357: + name: turtlebot3-example + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-example + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-example + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_358: + name: rviz-visual-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-visual-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_359: + name: velodyne-simulator + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-simulator + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-simulator + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_360: + name: octomap-mapping + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_20_job_313 + - stage_20_job_314 + - stage_20_job_315 + - stage_20_job_316 + - stage_20_job_317 + - stage_20_job_318 + - stage_20_job_319 + - stage_20_job_320 + - stage_20_job_321 + - stage_20_job_322 + - stage_20_job_323 + - stage_20_job_324 + - stage_20_job_325 + - stage_20_job_326 + - stage_20_job_327 + - stage_20_job_328 + - stage_20_job_329 + - stage_20_job_330 + - stage_20_job_331 + - stage_20_job_332 + - stage_20_job_333 + - stage_20_job_334 + - stage_20_job_335 + - stage_20_job_336 + - stage_20_job_337 + - stage_20_job_338 + - stage_20_job_339 + - stage_20_job_340 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap-mapping + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap-mapping + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_361: + name: moveit-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_362: + name: base-local-planner + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-base-local-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-base-local-planner + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_363: + name: navfn + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-navfn + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-navfn + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_364: + name: clear-costmap-recovery + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-clear-costmap-recovery + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-clear-costmap-recovery + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_365: + name: rqt-robot-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-robot-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-robot-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_366: + name: mbf-costmap-core + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mbf-costmap-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mbf-costmap-core + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_367: + name: visualization-tutorials + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_368: + name: point-cloud-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-point-cloud-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-point-cloud-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_369: + name: urdf-sim-tutorial + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-urdf-sim-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-urdf-sim-tutorial + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_370: + name: perception + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-perception + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-perception + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_371: + name: imu-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_372: + name: image-transport-codecs + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_21_job_341 + - stage_21_job_342 + - stage_21_job_343 + - stage_21_job_344 + - stage_21_job_345 + - stage_21_job_346 + - stage_21_job_347 + - stage_21_job_348 + - stage_21_job_349 + - stage_21_job_350 + - stage_21_job_351 + - stage_21_job_352 + - stage_21_job_353 + - stage_21_job_354 + - stage_21_job_355 + - stage_21_job_356 + - stage_21_job_357 + - stage_21_job_358 + - stage_21_job_359 + - stage_21_job_360 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-transport-codecs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-transport-codecs + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_373: + name: moveit-ros-occupancy-map-monitor + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-occupancy-map-monitor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-occupancy-map-monitor + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_374: + name: rotate-recovery + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rotate-recovery + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rotate-recovery + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_375: + name: moveit-resources-prbt-ikfast-manipulator-plugin + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_376: + name: moveit-simple-controller-manager + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-simple-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-simple-controller-manager + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_377: + name: chomp-motion-planner + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-chomp-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-chomp-motion-planner + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_378: + name: viz + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-viz + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-viz + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_379: + name: teb-local-planner + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-teb-local-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-teb-local-planner + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_380: + name: simulators + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-simulators + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-simulators + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_381: + name: draco-point-cloud-transport + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-draco-point-cloud-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-draco-point-cloud-transport + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_382: + name: sensor-filters + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-sensor-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-sensor-filters + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_23_job_383: + name: point-cloud-color + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_22_job_361 + - stage_22_job_362 + - stage_22_job_363 + - stage_22_job_364 + - stage_22_job_365 + - stage_22_job_366 + - stage_22_job_367 + - stage_22_job_368 + - stage_22_job_369 + - stage_22_job_370 + - stage_22_job_371 + - stage_22_job_372 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-point-cloud-color + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-point-cloud-color + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_384: + name: moveit-ros-planning + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-planning + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-planning + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_385: + name: move-base + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-move-base + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-move-base + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_386: + name: moveit-resources-prbt-moveit-config + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-moveit-config + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-moveit-config + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_387: + name: moveit-ros-control-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-control-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-control-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_388: + name: desktop + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-desktop + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-desktop + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_24_job_389: + name: point-cloud-transport-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_23_job_373 + - stage_23_job_374 + - stage_23_job_375 + - stage_23_job_376 + - stage_23_job_377 + - stage_23_job_378 + - stage_23_job_379 + - stage_23_job_380 + - stage_23_job_381 + - stage_23_job_382 + - stage_23_job_383 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-point-cloud-transport-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-point-cloud-transport-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_390: + name: moveit-kinematics + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-kinematics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-kinematics + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_391: + name: moveit-ros-warehouse + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-warehouse + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-warehouse + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_392: + name: moveit-ros-robot-interaction + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-robot-interaction + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-robot-interaction + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_393: + name: moveit-ros-perception + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-perception + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-perception + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_394: + name: moveit-fake-controller-manager + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-fake-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-fake-controller-manager + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_395: + name: moveit-resources-prbt-pg70-support + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-pg70-support + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-pg70-support + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_396: + name: moveit-planners-ompl + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-planners-ompl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-planners-ompl + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_397: + name: turtlebot3-navigation + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-navigation + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-navigation + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_398: + name: desktop-full + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-desktop-full + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-desktop-full + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_25_job_399: + name: moveit-visual-tools + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_24_job_384 + - stage_24_job_385 + - stage_24_job_386 + - stage_24_job_387 + - stage_24_job_388 + - stage_24_job_389 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-visual-tools + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_26_job_400: + name: moveit-ros-move-group + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_25_job_390 + - stage_25_job_391 + - stage_25_job_392 + - stage_25_job_393 + - stage_25_job_394 + - stage_25_job_395 + - stage_25_job_396 + - stage_25_job_397 + - stage_25_job_398 + - stage_25_job_399 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-move-group + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-move-group + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_26_job_401: + name: moveit-plugins + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_25_job_390 + - stage_25_job_391 + - stage_25_job_392 + - stage_25_job_393 + - stage_25_job_394 + - stage_25_job_395 + - stage_25_job_396 + - stage_25_job_397 + - stage_25_job_398 + - stage_25_job_399 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-plugins + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_26_job_402: + name: moveit-ros-benchmarks + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_25_job_390 + - stage_25_job_391 + - stage_25_job_392 + - stage_25_job_393 + - stage_25_job_394 + - stage_25_job_395 + - stage_25_job_396 + - stage_25_job_397 + - stage_25_job_398 + - stage_25_job_399 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-benchmarks + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-benchmarks + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_26_job_403: + name: turtlebot3 + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_25_job_390 + - stage_25_job_391 + - stage_25_job_392 + - stage_25_job_393 + - stage_25_job_394 + - stage_25_job_395 + - stage_25_job_396 + - stage_25_job_397 + - stage_25_job_398 + - stage_25_job_399 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3 + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_26_job_404: + name: robot-body-filter + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_25_job_390 + - stage_25_job_391 + - stage_25_job_392 + - stage_25_job_393 + - stage_25_job_394 + - stage_25_job_395 + - stage_25_job_396 + - stage_25_job_397 + - stage_25_job_398 + - stage_25_job_399 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-body-filter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-body-filter + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_27_job_405: + name: moveit-ros-manipulation + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_26_job_400 + - stage_26_job_401 + - stage_26_job_402 + - stage_26_job_403 + - stage_26_job_404 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-manipulation + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-manipulation + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_28_job_406: + name: moveit-ros-planning-interface + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_27_job_405 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-planning-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-planning-interface + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_29_job_407: + name: moveit-commander + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_28_job_406 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-commander + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-commander + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_29_job_408: + name: moveit-ros-visualization + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_28_job_406 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-visualization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-visualization + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_29_job_409: + name: moveit-planners-chomp + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_28_job_406 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-planners-chomp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-planners-chomp + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_30_job_410: + name: pilz-industrial-motion-planner-testutils + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_29_job_407 + - stage_29_job_408 + - stage_29_job_409 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pilz-industrial-motion-planner-testutils + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pilz-industrial-motion-planner-testutils + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_30_job_411: + name: moveit-setup-assistant + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_29_job_407 + - stage_29_job_408 + - stage_29_job_409 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-setup-assistant + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-setup-assistant + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_30_job_412: + name: moveit-ros + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_29_job_407 + - stage_29_job_408 + - stage_29_job_409 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_31_job_413: + name: pilz-industrial-motion-planner + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_30_job_410 + - stage_30_job_411 + - stage_30_job_412 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pilz-industrial-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pilz-industrial-motion-planner + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_32_job_414: + name: moveit-planners + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_31_job_413 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-planners + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-planners + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_33_job_415: + name: moveit + runs-on: cirun-linux-aarch64--${{ github.run_id }} + strategy: + fail-fast: false + needs: + - stage_32_job_414 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit + DOCKER_IMAGE: condaforge/linux-anvil-aarch64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh +name: build_linux +on: + push: + branches: + - buildbranch_linux_aarch64 diff --git a/activate.bat b/activate.bat new file mode 100644 index 000000000..48ff1d713 --- /dev/null +++ b/activate.bat @@ -0,0 +1,15 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@REM Don't do anything when we are in conda build. +@if defined SYS_PREFIX exit /b 0 + +@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins" + +@call "%CONDA_PREFIX%\Library\local_setup.bat" +@set PYTHONHOME= +@set "ROS_OS_OVERRIDE=conda:win64" +@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros" +@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library" +@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe" diff --git a/activate.ps1 b/activate.ps1 new file mode 100644 index 000000000..137e67aef --- /dev/null +++ b/activate.ps1 @@ -0,0 +1,16 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +# Don't do anything when we are in conda build. +if ($null -ne ${env:SYS_PREFIX}) { Exit 0 } + +$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins" + +& "${env:CONDA_PREFIX}\Library\local_setup.ps1" + +$Env:PYTHONHOME='' +$Env:ROS_OS_OVERRIDE='conda:win64' +$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros" +$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library" +$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe" diff --git a/activate.sh b/activate.sh new file mode 100644 index 000000000..aece97080 --- /dev/null +++ b/activate.sh @@ -0,0 +1,26 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +# if [ -z "${CONDA_PREFIX}" ]; then +# exit 0; +# fi + +# Not sure if this is necessary on UNIX? +# export QT_PLUGIN_PATH=$CONDA_PREFIX\plugins + +if [ "$CONDA_BUILD" = "1" -a "$target_platform" != "$build_platform" ]; then + # ignore sourcing + echo "Not activating ROS when cross-compiling"; +else + source $CONDA_PREFIX/setup.sh +fi + +case "$OSTYPE" in + darwin*) export ROS_OS_OVERRIDE="conda:osx"; export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp";; + linux*) export ROS_OS_OVERRIDE="conda:linux";; +esac + +export ROS_ETC_DIR=$CONDA_PREFIX/etc/ros +export AMENT_PREFIX_PATH=$CONDA_PREFIX + +# Looks unnecessary for UNIX +# unset PYTHONHOME= diff --git a/bld_ament_cmake.bat b/bld_ament_cmake.bat new file mode 100644 index 000000000..7aa6fc90a --- /dev/null +++ b/bld_ament_cmake.bat @@ -0,0 +1,38 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" + +:: try to fix long paths issues by using default generator +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" +set "SP_DIR_FORWARDSLASHES=%SP_DIR:\=/%" + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + -DPYTHON_INSTALL_DIR=%SP_DIR_FORWARDSLASHES% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 diff --git a/bld_ament_python.bat b/bld_ament_python.bat new file mode 100644 index 000000000..5aa4f978a --- /dev/null +++ b/bld_ament_python.bat @@ -0,0 +1,21 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +pushd %SRC_DIR%\%PKG_NAME%\src\work + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% -m pip install . --no-deps -vvv +) else ( + set "INSTALL_SCRIPTS_ARG=--install-scripts=%LIBRARY_PREFIX%\bin" + %PYTHON% setup.py install ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + %INSTALL_SCRIPTS_ARG% +) + +if errorlevel 1 exit 1 diff --git a/bld_catkin.bat b/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/bld_catkin_merge.bat b/bld_catkin_merge.bat new file mode 100644 index 000000000..f2c6cf722 --- /dev/null +++ b/bld_catkin_merge.bat @@ -0,0 +1,34 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set CATKIN_MAKE_ISOLATED=src\ros-noetic-catkin\bin\catkin_make_isolated +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH:\=/% + +%PYTHON% %CATKIN_MAKE_ISOLATED% ^ + --install-space %LIBRARY_PREFIX% ^ + --use-ninja ^ + --install ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DCATKIN_SKIP_TESTING=ON +if errorlevel 1 exit 1 + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat +) diff --git a/bld_colcon_merge.bat b/bld_colcon_merge.bat new file mode 100644 index 000000000..9d012eff4 --- /dev/null +++ b/bld_colcon_merge.bat @@ -0,0 +1,28 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +set "SP_DIR_FORWARDSLASHES=%SP_DIR:\=/%" + +colcon build ^ + --event-handlers console_cohesion+ ^ + --merge-install ^ + --install-base %LIBRARY_PREFIX% ^ + --cmake-args ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_TESTING=OFF ^ + -DPYTHON_INSTALL_DIR=%SP_DIR_FORWARDSLASHES% ^ + -DPYTHON_EXECUTABLE=%PYTHON% +if errorlevel 1 exit 1 + +:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. +:: This will allow them to be run on environment activation. +for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat +) diff --git a/build_ament_cmake.sh b/build_ament_cmake.sh new file mode 100644 index 000000000..01c63b554 --- /dev/null +++ b/build_ament_cmake.sh @@ -0,0 +1,68 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" +echo "Using site-package dir ${SP_DIR}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/build_ament_python.sh b/build_ament_python.sh new file mode 100644 index 000000000..395f7d640 --- /dev/null +++ b/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +result=$? +grep -q "install[-_]scripts" setup.cfg || true +if [ $result -eq 0 ]; then + $PYTHON -m pip install . --no-deps -vvv +else + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-noetic-} + # Substitute "-" with "_" + PKG_NAME_SHORT=${PKG_NAME_SHORT//-/_} + INSTALL_SCRIPTS_ARG="--install-scripts=$PREFIX/lib/$PKG_NAME_SHORT" + echo "WARNING: setup.cfg not set, will set INSTALL_SCRIPTS_ARG to: $INSTALL_SCRIPTS_ARG" + $PYTHON setup.py install --prefix="$PREFIX" --install-lib="$SP_DIR" $INSTALL_SCRIPTS_ARG +fi diff --git a/build_catkin.sh b/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/buildorder.txt b/buildorder.txt new file mode 100644 index 000000000..1c2420297 --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,416 @@ +ros-noetic-catkin +ros-noetic-ruckig +ros-noetic-ompl +ros-noetic-cpp-common +ros-noetic-genmsg +ros-noetic-ros-environment +ros-noetic-cmake-modules +ros-noetic-rosmake +ros-noetic-rosgraph +ros-noetic-rosclean +ros-noetic-urdf-parser-plugin +ros-noetic-roslint +ros-noetic-media-export +ros-noetic-rosbag-migration-rule +ros-noetic-octomap +ros-noetic-random-numbers +ros-noetic-pybind11-catkin +ros-noetic-moveit-resources-pr2-description +ros-noetic-moveit-resources-fanuc-description +ros-noetic-smclib +ros-noetic-gazebo-dev +ros-noetic-libg2o +ros-noetic-code-coverage +ros-noetic-qwt-dependency +ros-noetic-rosboost-cfg +ros-noetic-openslam-gmapping +ros-noetic-smach +ros-noetic-gl-dependency +ros-noetic-webkit-dependency +draco +ros-noetic-rostime +ros-noetic-genpy +ros-noetic-gennodejs +ros-noetic-genlisp +ros-noetic-geneus +ros-noetic-gencpp +ros-noetic-rospack +ros-noetic-roslang +ros-noetic-rosparam +ros-noetic-rosmaster +ros-noetic-class-loader +ros-noetic-fcl +ros-noetic-eigen-stl-containers +ros-noetic-rosdoc-lite +ros-noetic-roscpp-traits +ros-noetic-message-generation +ros-noetic-roslib +ros-noetic-xmlrpcpp +ros-noetic-rosbash +ros-noetic-cras-docs-common +ros-noetic-roscpp-serialization +ros-noetic-rosunit +ros-noetic-roscreate +ros-noetic-message-runtime +ros-noetic-roslz4 +ros-noetic-angles +ros-noetic-roscpp-core +ros-noetic-std-msgs +ros-noetic-rosbuild +ros-noetic-std-srvs +ros-noetic-rosserial-msgs +ros-noetic-rosgraph-msgs +ros-noetic-rosconsole +ros-noetic-geometry-msgs +ros-noetic-actionlib-msgs +ros-noetic-diagnostic-msgs +ros-noetic-python-qt-binding +ros-noetic-bond +ros-noetic-audio-common-msgs +ros-noetic-mk +ros-noetic-uuid-msgs +ros-noetic-smach-msgs +ros-noetic-turtlebot3-msgs +ros-noetic-rosbridge-msgs +ros-noetic-nmea-msgs +ros-noetic-compass-msgs +ros-noetic-four-wheel-steering-msgs +ros-noetic-electronic-io-msgs +ros-noetic-ackermann-msgs +ros-noetic-roscpp +ros-noetic-pluginlib +ros-noetic-tf2-msgs +ros-noetic-rosconsole-bridge +ros-noetic-nav-msgs +ros-noetic-visualization-msgs +ros-noetic-resource-retriever +ros-noetic-shape-msgs +ros-noetic-trajectory-msgs +ros-noetic-octomap-msgs +ros-noetic-qt-gui +ros-noetic-eigen-conversions +ros-noetic-kdl-conversions +ros-noetic-qt-gui-py-common +ros-noetic-move-base-msgs +ros-noetic-roslisp +ros-noetic-ros +ros-noetic-qt-dotgraph +ros-noetic-geographic-msgs +ros-noetic-franka-msgs +ros-noetic-mbf-abstract-core +ros-noetic-graph-msgs +ros-noetic-ros-babel-fish-test-msgs +ros-noetic-microstrain-inertial-msgs +ros-noetic-cras-relative-positional-controller +ros-noetic-rosmsg-cpp +ros-noetic-radar-msgs +ros-noetic-rosout +ros-noetic-rospy +ros-noetic-tf2 +ros-noetic-geometric-shapes +ros-noetic-voxel-grid +ros-noetic-bondcpp +ros-noetic-hardware-interface +ros-noetic-roscpp-tutorials +ros-noetic-qt-gui-cpp +ros-noetic-control-msgs +ros-noetic-turtlesim +ros-noetic-hector-nav-msgs +ros-noetic-hector-map-tools +ros-noetic-visualization-marker-tutorials +ros-noetic-pluginlib-tutorials +ros-noetic-mbf-msgs +ros-noetic-roslaunch +ros-noetic-tf2-py +ros-noetic-urdfdom-py +ros-noetic-tf2-eigen +ros-noetic-rqt-gui +ros-noetic-bondpy +ros-noetic-nodelet +ros-noetic-controller-interface +ros-noetic-transmission-interface +ros-noetic-rosserial-python +ros-noetic-turtlebot3-teleop +ros-noetic-combined-robot-hw +ros-noetic-rospy-message-converter +ros-noetic-dynamixel-sdk +ros-noetic-rosbash-params +ros-noetic-tf2-bullet +ros-noetic-static-transform-mux +ros-noetic-snmp-ros +ros-noetic-rostest +ros-noetic-rqt-gui-py +ros-noetic-rqt-gui-cpp +ros-noetic-bond-core +ros-noetic-nodelet-tutorial-math +ros-noetic-topic-tools +ros-noetic-rosbag-storage +ros-noetic-message-filters +ros-noetic-urdf +ros-noetic-xacro +ros-noetic-map-server +ros-noetic-diagnostic-aggregator +ros-noetic-diagnostic-updater +ros-noetic-filters +ros-noetic-rospy-tutorials +ros-noetic-rqt-runtime-monitor +ros-noetic-rqt-web +ros-noetic-rqt-top +ros-noetic-rqt-shell +ros-noetic-rqt-py-console +ros-noetic-rosauth +ros-noetic-kdl-parser-py +ros-noetic-rosbag +ros-noetic-kdl-parser +ros-noetic-moveit-resources-panda-description +ros-noetic-srdfdom +ros-noetic-moveit-resources-prbt-support +ros-noetic-joint-limits-interface +ros-noetic-self-test +ros-noetic-rosserial-server +ros-noetic-turtlebot3-description +ros-noetic-velodyne-description +ros-noetic-realsense2-description +ros-noetic-ros-tutorials +ros-noetic-urdf-geometry-parser +ros-noetic-rostopic +ros-noetic-rosmsg +ros-noetic-sensor-msgs +ros-noetic-diagnostic-analysis +ros-noetic-rosnode +ros-noetic-rosservice +ros-noetic-map-msgs +ros-noetic-image-transport +ros-noetic-joint-state-publisher +ros-noetic-object-recognition-msgs +ros-noetic-pcl-msgs +ros-noetic-stereo-msgs +ros-noetic-image-geometry +ros-noetic-cv-bridge +ros-noetic-gazebo-msgs +ros-noetic-camera-calibration-parsers +ros-noetic-rqt-topic +ros-noetic-joy +ros-noetic-hls-lfcd-lds-driver +ros-noetic-lms1xx +ros-noetic-rqt-robot-steering +ros-noetic-cras-msgs +ros-noetic-mavros-msgs +ros-noetic-gps-common +ros-noetic-actionlib +ros-noetic-roswtf +ros-noetic-joint-state-publisher-gui +ros-noetic-moveit-msgs +ros-noetic-dynamic-reconfigure +ros-noetic-rqt-logger-level +ros-noetic-pcl-conversions +ros-noetic-rqt-bag +ros-noetic-controller-manager-msgs +ros-noetic-camera-info-manager +ros-noetic-rqt-image-view +ros-noetic-polled-camera +ros-noetic-common-msgs +ros-noetic-rqt-graph +ros-noetic-rosbridge-library +ros-noetic-teleop-twist-joy +ros-noetic-camera-calibration +ros-noetic-vision-opencv +ros-noetic-movie-publisher +ros-noetic-electronic-io +ros-noetic-tf2-ros +ros-noetic-rqt-py-common +ros-noetic-nodelet-topic-tools +ros-noetic-realtime-tools +ros-noetic-image-view +ros-noetic-controller-manager +ros-noetic-image-publisher +ros-noetic-actionlib-tutorials +ros-noetic-compressed-image-transport +ros-noetic-twist-mux-msgs +ros-noetic-compressed-depth-image-transport +ros-noetic-ros-comm +ros-noetic-usb-cam +ros-noetic-theora-image-transport +ros-noetic-smach-ros +ros-noetic-rqt-dep +ros-noetic-rosapi +ros-noetic-turtle-actionlib +ros-noetic-image-common +ros-noetic-rqt-controller-manager +ros-noetic-pid +ros-noetic-cv-camera +ros-noetic-tf2-geometry-msgs +ros-noetic-tf +ros-noetic-tf2-kdl +ros-noetic-tf2-sensor-msgs +ros-noetic-rqt-console +ros-noetic-depth-image-proc +ros-noetic-image-proc +ros-noetic-control-toolbox +ros-noetic-forward-command-controller +ros-noetic-rqt-robot-monitor +ros-noetic-rqt-plot +ros-noetic-joint-state-controller +ros-noetic-twist-mux +ros-noetic-imu-sensor-controller +ros-noetic-force-torque-sensor-controller +ros-noetic-ros-core +ros-noetic-nodelet-core +ros-noetic-rqt-tf-tree +ros-noetic-rqt-moveit +ros-noetic-rqt-service-caller +ros-noetic-rqt-publisher +ros-noetic-executive-smach +ros-noetic-rosbridge-server +ros-noetic-image-transport-plugins +ros-noetic-common-tutorials +ros-noetic-ros-control +ros-noetic-tf2-tools +ros-noetic-ros-babel-fish +ros-noetic-tf2-client +ros-noetic-laser-geometry +ros-noetic-interactive-markers +ros-noetic-robot-state-publisher +ros-noetic-warehouse-ros +ros-noetic-rqt-reconfigure +ros-noetic-gazebo-ros +ros-noetic-pcl-ros +ros-noetic-tf-conversions +ros-noetic-rqt-nav-view +ros-noetic-rgbd-launch +ros-noetic-stereo-image-proc +ros-noetic-amcl +ros-noetic-velocity-controllers +ros-noetic-position-controllers +ros-noetic-joint-trajectory-controller +ros-noetic-diff-drive-controller +ros-noetic-octomap-ros +ros-noetic-rqt-msg +ros-noetic-gmapping +ros-noetic-cras-cpp-common +ros-noetic-gripper-action-controller +ros-noetic-diagnostic-common-diagnostics +ros-noetic-rqt-pose-view +ros-noetic-rqt-launch +ros-noetic-rqt-bag-plugins +ros-noetic-mbf-utility +ros-noetic-robot-localization +ros-noetic-ros-base +ros-noetic-image-rotate +ros-noetic-turtle-tf2 +ros-noetic-turtle-tf +ros-noetic-imu-filter-madgwick +ros-noetic-imu-complementary-filter +ros-noetic-fake-localization +ros-noetic-hector-trajectory-server +ros-noetic-rosbridge-suite +ros-noetic-imu-transformer +ros-noetic-tf-remapper-cpp +ros-noetic-tf2-server +ros-noetic-ros-numpy +ros-noetic-nmea-navsat-driver +ros-noetic-microstrain-inertial-driver +ros-noetic-geometry2 +ros-noetic-rviz +ros-noetic-moveit-resources-fanuc-moveit-config +ros-noetic-costmap-2d +ros-noetic-laser-filters +ros-noetic-rqt-robot-dashboard +ros-noetic-gazebo-ros-control +ros-noetic-hector-gazebo-plugins +ros-noetic-gazebo-plugins +ros-noetic-effort-controllers +ros-noetic-ackermann-steering-controller +ros-noetic-octomap-server +ros-noetic-laser-assembler +ros-noetic-rqt-srv +ros-noetic-rqt-action +ros-noetic-turtlebot3-bringup +ros-noetic-cras-py-common +ros-noetic-interactive-marker-twist-server +ros-noetic-geometry +ros-noetic-diagnostics +ros-noetic-interactive-marker-tutorials +ros-noetic-pointgrey-camera-description +ros-noetic-perception-pcl +ros-noetic-image-pipeline +ros-noetic-geometry-tutorials +ros-noetic-velodyne-gazebo-plugins +ros-noetic-turtlebot3-fake +ros-noetic-magnetometer-compass +ros-noetic-dynamic-robot-state-publisher +ros-noetic-moveit-resources-panda-moveit-config +ros-noetic-nav-core +ros-noetic-rqt-rviz +ros-noetic-ros-controllers +ros-noetic-rqt-common-plugins +ros-noetic-rviz-python-tutorial +ros-noetic-rviz-plugin-tutorials +ros-noetic-librviz-tutorial +ros-noetic-cras-topic-tools +ros-noetic-costmap-converter +ros-noetic-urdf-tutorial +ros-noetic-robot +ros-noetic-gazebo-ros-pkgs +ros-noetic-laser-pipeline +ros-noetic-rviz-imu-plugin +ros-noetic-turtlebot3-slam +ros-noetic-turtlebot3-example +ros-noetic-rviz-visual-tools +ros-noetic-velodyne-simulator +ros-noetic-octomap-mapping +ros-noetic-moveit-core +ros-noetic-base-local-planner +ros-noetic-navfn +ros-noetic-clear-costmap-recovery +ros-noetic-rqt-robot-plugins +ros-noetic-mbf-costmap-core +ros-noetic-visualization-tutorials +ros-noetic-point-cloud-transport +ros-noetic-urdf-sim-tutorial +ros-noetic-perception +ros-noetic-imu-tools +ros-noetic-image-transport-codecs +ros-noetic-moveit-ros-occupancy-map-monitor +ros-noetic-rotate-recovery +ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin +ros-noetic-moveit-simple-controller-manager +ros-noetic-chomp-motion-planner +ros-noetic-viz +ros-noetic-teb-local-planner +ros-noetic-simulators +ros-noetic-draco-point-cloud-transport +ros-noetic-sensor-filters +ros-noetic-point-cloud-color +ros-noetic-moveit-ros-planning +ros-noetic-move-base +ros-noetic-moveit-resources-prbt-moveit-config +ros-noetic-moveit-ros-control-interface +ros-noetic-desktop +ros-noetic-point-cloud-transport-plugins +ros-noetic-moveit-kinematics +ros-noetic-moveit-ros-warehouse +ros-noetic-moveit-ros-robot-interaction +ros-noetic-moveit-ros-perception +ros-noetic-moveit-fake-controller-manager +ros-noetic-moveit-resources-prbt-pg70-support +ros-noetic-moveit-planners-ompl +ros-noetic-turtlebot3-navigation +ros-noetic-desktop-full +ros-noetic-moveit-visual-tools +ros-noetic-moveit-ros-move-group +ros-noetic-moveit-plugins +ros-noetic-moveit-ros-benchmarks +ros-noetic-turtlebot3 +ros-noetic-robot-body-filter +ros-noetic-moveit-ros-manipulation +ros-noetic-moveit-ros-planning-interface +ros-noetic-moveit-commander +ros-noetic-moveit-ros-visualization +ros-noetic-moveit-planners-chomp +ros-noetic-pilz-industrial-motion-planner-testutils +ros-noetic-moveit-setup-assistant +ros-noetic-moveit-ros +ros-noetic-pilz-industrial-motion-planner +ros-noetic-moveit-planners +ros-noetic-moveit \ No newline at end of file diff --git a/deactivate.bat b/deactivate.bat new file mode 100644 index 000000000..6de79ccaf --- /dev/null +++ b/deactivate.bat @@ -0,0 +1,18 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@set ROS_OS_OVERRIDE= +@set ROS_DISTRO= +@set ROS_ETC_DIR= +@set ROS_PACKAGE_PATH= +@set ROS_PYTHON_VERSION= +@set ROS_VERSION= +@set PYTHONHOME= +@set PYTHONPATH= +@set CMAKE_PREFIX_PATH= +@set AMENT_PREFIX_PATH= +@set COLCON_PREFIX_PATH= +@set QT_PLUGIN_PATH= +@set ROS_LOCALHOST_ONLY= +@set ament_python_executable= diff --git a/deactivate.ps1 b/deactivate.ps1 new file mode 100644 index 000000000..9db51e1c2 --- /dev/null +++ b/deactivate.ps1 @@ -0,0 +1,18 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +$Env:ROS_OS_OVERRIDE='' +$Env:ROS_DISTRO='' +$Env:ROS_ETC_DIR='' +$Env:ROS_PACKAGE_PATH='' +$Env:ROS_PYTHON_VERSION='' +$Env:ROS_VERSION='' +$Env:PYTHONHOME='' +$Env:PYTHONPATH='' +$Env:CMAKE_PREFIX_PATH='' +$Env:AMENT_PREFIX_PATH='' +$Env:COLCON_PREFIX_PATH='' +$Env:QT_PLUGIN_PATH='' +$Env:ROS_LOCALHOST_ONLY='' +$Env:ament_python_executable='' diff --git a/deactivate.sh b/deactivate.sh new file mode 100644 index 000000000..87d4d8359 --- /dev/null +++ b/deactivate.sh @@ -0,0 +1,21 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if [ -z "${CONDA_PREFIX}" ]; then + exit 0 +fi + +unset ROS_DISTRO +unset ROS_ETC_DIR +unset ROS_PACKAGE_PATH +unset ROS_PYTHON_VERSION +unset CMAKE_PREFIX_PATH +unset AMENT_PREFIX_PATH +unset COLCON_PREFIX_PATH +unset ROS_VERSION +unset ROS_OS_OVERRIDE +# unset PYTHONPATH +# unset PYTHONHOME +# unset QT_PLUGIN_PATH +unset ROS_LOCALHOST_ONLY +unset ament_python_executable +unset RMW_IMPLEMENTATION diff --git a/recipes/draco/bld_catkin.bat b/recipes/draco/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/draco/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/draco/build_catkin.sh b/recipes/draco/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/draco/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/draco/recipe.yaml b/recipes/draco/recipe.yaml new file mode 100644 index 000000000..c5ec4e2ee --- /dev/null +++ b/recipes/draco/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: draco + version: 1.5.6 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/draco.git + git_rev: release/noetic/draco/1.5.6-3 + folder: draco/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ackermann-msgs/bld_catkin.bat b/recipes/ros-noetic-ackermann-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ackermann-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ackermann-msgs/build_catkin.sh b/recipes/ros-noetic-ackermann-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ackermann-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ackermann-msgs/recipe.yaml b/recipes/ros-noetic-ackermann-msgs/recipe.yaml new file mode 100644 index 000000000..539b59db8 --- /dev/null +++ b/recipes/ros-noetic-ackermann-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-ackermann-msgs + version: 1.0.2 +source: + git_url: https://github.com/ros-drivers-gbp/ackermann_msgs-release.git + git_rev: release/noetic/ackermann_msgs/1.0.2-1 + folder: ros-noetic-ackermann-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat b/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh b/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml b/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml new file mode 100644 index 000000000..24a4bed47 --- /dev/null +++ b/recipes/ros-noetic-ackermann-steering-controller/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-ackermann-steering-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/ackermann_steering_controller/0.21.2-1 + folder: ros-noetic-ackermann-steering-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-controller-manager-msgs + - ros-noetic-diff-drive-controller + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-xacro + - urdfdom + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-diff-drive-controller + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-tf + - urdfdom + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-actionlib-msgs/bld_catkin.bat b/recipes/ros-noetic-actionlib-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-actionlib-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-actionlib-msgs/build_catkin.sh b/recipes/ros-noetic-actionlib-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-actionlib-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-actionlib-msgs/recipe.yaml b/recipes/ros-noetic-actionlib-msgs/recipe.yaml new file mode 100644 index 000000000..6b2da50c8 --- /dev/null +++ b/recipes/ros-noetic-actionlib-msgs/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-actionlib-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/actionlib_msgs/1.13.1-1 + folder: ros-noetic-actionlib-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat b/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh b/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-actionlib-tutorials/recipe.yaml b/recipes/ros-noetic-actionlib-tutorials/recipe.yaml new file mode 100644 index 000000000..b26abeec4 --- /dev/null +++ b/recipes/ros-noetic-actionlib-tutorials/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-actionlib-tutorials + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/actionlib_tutorials/0.2.0-1 + folder: ros-noetic-actionlib-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-message-runtime + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-actionlib/bld_catkin.bat b/recipes/ros-noetic-actionlib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-actionlib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-actionlib/build_catkin.sh b/recipes/ros-noetic-actionlib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-actionlib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch b/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch new file mode 100644 index 000000000..903753888 --- /dev/null +++ b/recipes/ros-noetic-actionlib/patch/ros-noetic-actionlib.patch @@ -0,0 +1,264 @@ +diff --git a/actionlib/include/actionlib/client/action_client.h b/actionlib/include/actionlib/client/action_client.h +index 85b32dc..21d0102 100644 +--- a/actionlib/include/actionlib/client/action_client.h ++++ b/actionlib/include/actionlib/client/action_client.h +@@ -236,17 +236,17 @@ private: + + // Start publishers and subscribers + goal_pub_ = queue_advertise("goal", static_cast(pub_queue_size), +- boost::bind(&ConnectionMonitor::goalConnectCallback, connection_monitor_, _1), +- boost::bind(&ConnectionMonitor::goalDisconnectCallback, connection_monitor_, _1), ++ boost::bind(&ConnectionMonitor::goalConnectCallback, connection_monitor_, boost::placeholders::_1), ++ boost::bind(&ConnectionMonitor::goalDisconnectCallback, connection_monitor_, boost::placeholders::_1), + queue); + cancel_pub_ = + queue_advertise("cancel", static_cast(pub_queue_size), +- boost::bind(&ConnectionMonitor::cancelConnectCallback, connection_monitor_, _1), +- boost::bind(&ConnectionMonitor::cancelDisconnectCallback, connection_monitor_, _1), ++ boost::bind(&ConnectionMonitor::cancelConnectCallback, connection_monitor_, boost::placeholders::_1), ++ boost::bind(&ConnectionMonitor::cancelDisconnectCallback, connection_monitor_, boost::placeholders::_1), + queue); + +- manager_.registerSendGoalFunc(boost::bind(&ActionClientT::sendGoalFunc, this, _1)); +- manager_.registerCancelFunc(boost::bind(&ActionClientT::sendCancelFunc, this, _1)); ++ manager_.registerSendGoalFunc(boost::bind(&ActionClientT::sendGoalFunc, this, boost::placeholders::_1)); ++ manager_.registerCancelFunc(boost::bind(&ActionClientT::sendCancelFunc, this, boost::placeholders::_1)); + } + + template +@@ -275,7 +275,7 @@ private: + ops.datatype = ros::message_traits::datatype(); + ops.helper = ros::SubscriptionCallbackHelperPtr( + new ros::SubscriptionCallbackHelperT &>( +- boost::bind(fp, obj, _1) ++ boost::bind(fp, obj, boost::placeholders::_1) + ) + ); + return n_.subscribe(ops); +diff --git a/actionlib/include/actionlib/client/goal_manager_imp.h b/actionlib/include/actionlib/client/goal_manager_imp.h +index 28f4979..4e3281b 100644 +--- a/actionlib/include/actionlib/client/goal_manager_imp.h ++++ b/actionlib/include/actionlib/client/goal_manager_imp.h +@@ -74,7 +74,7 @@ ClientGoalHandle GoalManager::initGoal(const Goal & goal + + boost::recursive_mutex::scoped_lock lock(list_mutex_); + typename ManagedListT::Handle list_handle = +- list_.add(comm_state_machine, boost::bind(&GoalManagerT::listElemDeleter, this, _1), guard_); ++ list_.add(comm_state_machine, boost::bind(&GoalManagerT::listElemDeleter, this, boost::placeholders::_1), guard_); + + if (send_goal_func_) { + send_goal_func_(action_goal); +diff --git a/actionlib/include/actionlib/client/simple_action_client.h b/actionlib/include/actionlib/client/simple_action_client.h +index 436516f..02df1ae 100644 +--- a/actionlib/include/actionlib/client/simple_action_client.h ++++ b/actionlib/include/actionlib/client/simple_action_client.h +@@ -330,8 +330,8 @@ void SimpleActionClient::sendGoal(const Goal & goal, + cur_simple_state_ = SimpleGoalState::PENDING; + + // Send the goal to the ActionServer +- gh_ = ac_->sendGoal(goal, boost::bind(&SimpleActionClientT::handleTransition, this, _1), +- boost::bind(&SimpleActionClientT::handleFeedback, this, _1, _2)); ++ gh_ = ac_->sendGoal(goal, boost::bind(&SimpleActionClientT::handleTransition, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionClientT::handleFeedback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + + template +diff --git a/actionlib/include/actionlib/managed_list.h b/actionlib/include/actionlib/managed_list.h +index 2c91960..b2c4f89 100644 +--- a/actionlib/include/actionlib/managed_list.h ++++ b/actionlib/include/actionlib/managed_list.h +@@ -218,7 +218,7 @@ private: + */ + Handle add(const T & elem) + { +- return add(elem, boost::bind(&ManagedList::defaultDeleter, this, _1) ); ++ return add(elem, boost::bind(&ManagedList::defaultDeleter, this, boost::placeholders::_1) ); + } + + /** +diff --git a/actionlib/include/actionlib/one_shot_timer.h b/actionlib/include/actionlib/one_shot_timer.h +index e3c821d..7839294 100644 +--- a/actionlib/include/actionlib/one_shot_timer.h ++++ b/actionlib/include/actionlib/one_shot_timer.h +@@ -60,7 +60,7 @@ public: + + boost::function getCb() + { +- return boost::bind(&OneShotTimer::cb, this, _1); ++ return boost::bind(&OneShotTimer::cb, this, boost::placeholders::_1); + } + + void registerOneShotCb(boost::function callback) +diff --git a/actionlib/include/actionlib/server/action_server_imp.h b/actionlib/include/actionlib/server/action_server_imp.h +index 2a088b1..837b9c4 100644 +--- a/actionlib/include/actionlib/server/action_server_imp.h ++++ b/actionlib/include/actionlib/server/action_server_imp.h +@@ -172,15 +172,15 @@ void ActionServer::initialize() + + if (status_frequency > 0) { + status_timer_ = node_.createTimer(ros::Duration(1.0 / status_frequency), +- boost::bind(&ActionServer::publishStatus, this, _1)); ++ boost::bind(&ActionServer::publishStatus, this, boost::placeholders::_1)); + } + + goal_sub_ = node_.subscribe("goal", static_cast(sub_queue_size), +- boost::bind(&ActionServerBase::goalCallback, this, _1)); ++ boost::bind(&ActionServerBase::goalCallback, this, boost::placeholders::_1)); + + cancel_sub_ = + node_.subscribe("cancel", static_cast(sub_queue_size), +- boost::bind(&ActionServerBase::cancelCallback, this, _1)); ++ boost::bind(&ActionServerBase::cancelCallback, this, boost::placeholders::_1)); + } + + template +diff --git a/actionlib/include/actionlib/server/service_server_imp.h b/actionlib/include/actionlib/server/service_server_imp.h +index ac5444d..2f0265e 100644 +--- a/actionlib/include/actionlib/server/service_server_imp.h ++++ b/actionlib/include/actionlib/server/service_server_imp.h +@@ -58,7 +58,7 @@ ServiceServerImpT::ServiceServerImpT(ros::NodeHandle n, std::string + : service_cb_(service_cb) + { + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&ServiceServerImpT::goalCB, this, _1), false)); ++ boost::bind(&ServiceServerImpT::goalCB, this, boost::placeholders::_1), false)); + as_->start(); + } + +diff --git a/actionlib/include/actionlib/server/simple_action_server_imp.h b/actionlib/include/actionlib/server/simple_action_server_imp.h +index 0255515..a361cd7 100644 +--- a/actionlib/include/actionlib/server/simple_action_server_imp.h ++++ b/actionlib/include/actionlib/server/simple_action_server_imp.h +@@ -56,8 +56,8 @@ SimpleActionServer::SimpleActionServer(std::string name, + + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + } + +@@ -68,8 +68,8 @@ SimpleActionServer::SimpleActionServer(std::string name, bool auto_s + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -85,8 +85,8 @@ SimpleActionServer::SimpleActionServer(std::string name, + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n_, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + true)); + + if (execute_callback_) { +@@ -104,8 +104,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -121,8 +121,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + auto_start)); + + if (execute_callback_) { +@@ -138,8 +138,8 @@ SimpleActionServer::SimpleActionServer(ros::NodeHandle n, std::strin + { + // create the action server + as_ = boost::shared_ptr >(new ActionServer(n, name, +- boost::bind(&SimpleActionServer::goalCallback, this, _1), +- boost::bind(&SimpleActionServer::preemptCallback, this, _1), ++ boost::bind(&SimpleActionServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&SimpleActionServer::preemptCallback, this, boost::placeholders::_1), + true)); + + if (execute_callback_) { +diff --git a/actionlib/test/add_two_ints_server.cpp b/actionlib/test/add_two_ints_server.cpp +index 098c315..84ddace 100644 +--- a/actionlib/test/add_two_ints_server.cpp ++++ b/actionlib/test/add_two_ints_server.cpp +@@ -53,7 +53,7 @@ int main(int argc, char ** argv) + + actionlib::ServiceServer service = actionlib::advertiseService(n, + "add_two_ints", +- boost::bind(add, _1, _2)); ++ boost::bind(add, boost::placeholders::_1, boost::placeholders::_2)); + + ros::spin(); + +diff --git a/actionlib/test/ref_server.cpp b/actionlib/test/ref_server.cpp +index 1da0ab5..7aede23 100644 +--- a/actionlib/test/ref_server.cpp ++++ b/actionlib/test/ref_server.cpp +@@ -61,8 +61,8 @@ using namespace actionlib; + + RefServer::RefServer(ros::NodeHandle & n, const std::string & name) + : ActionServer(n, name, +- boost::bind(&RefServer::goalCallback, this, _1), +- boost::bind(&RefServer::cancelCallback, this, _1), ++ boost::bind(&RefServer::goalCallback, this, boost::placeholders::_1), ++ boost::bind(&RefServer::cancelCallback, this, boost::placeholders::_1), + false) + { + start(); +diff --git a/actionlib/test/server_goal_handle_destruction.cpp b/actionlib/test/server_goal_handle_destruction.cpp +index 9e179c7..ed12d2b 100644 +--- a/actionlib/test/server_goal_handle_destruction.cpp ++++ b/actionlib/test/server_goal_handle_destruction.cpp +@@ -67,7 +67,7 @@ ServerGoalHandleDestructionTester::ServerGoalHandleDestructionTester() + as_ = new ActionServer(nh_, "reference_action", false); + as_->start(); + as_->registerGoalCallback(boost::bind(&ServerGoalHandleDestructionTester::goalCallback, this, +- _1)); ++ boost::placeholders::_1)); + gh_ = new GoalHandle(); + } + +diff --git a/actionlib/test/simple_client_test.cpp b/actionlib/test/simple_client_test.cpp +index 341bbc9..ea40050 100644 +--- a/actionlib/test/simple_client_test.cpp ++++ b/actionlib/test/simple_client_test.cpp +@@ -106,7 +106,7 @@ TEST(SimpleClient, easy_callback) + + bool called = false; + goal.goal = 1; +- SimpleActionClient::SimpleDoneCallback func = boost::bind(&easyDoneCallback, &called, &client, _1, _2); ++ SimpleActionClient::SimpleDoneCallback func = boost::bind(&easyDoneCallback, &called, &client, boost::placeholders::_1, boost::placeholders::_2); + client.sendGoal(goal, func); + finished = client.waitForResult(ros::Duration(10.0)); + ASSERT_TRUE(finished); +diff --git a/actionlib/test/simple_execute_ref_server.cpp b/actionlib/test/simple_execute_ref_server.cpp +index 57aa9cd..b663ec4 100644 +--- a/actionlib/test/simple_execute_ref_server.cpp ++++ b/actionlib/test/simple_execute_ref_server.cpp +@@ -61,7 +61,7 @@ using namespace actionlib; + + SimpleExecuteRefServer::SimpleExecuteRefServer() + : as_(nh_, "reference_action", boost::bind(&SimpleExecuteRefServer::executeCallback, this, +- _1), false) ++ boost::placeholders::_1), false) + { + as_.start(); + } diff --git a/recipes/ros-noetic-actionlib/recipe.yaml b/recipes/ros-noetic-actionlib/recipe.yaml new file mode 100644 index 000000000..607e1c08e --- /dev/null +++ b/recipes/ros-noetic-actionlib/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-actionlib + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/actionlib-release.git + git_rev: release/noetic/actionlib/1.14.0-1 + folder: ros-noetic-actionlib/src/work + patches: + - patch/ros-noetic-actionlib.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-amcl/bld_catkin.bat b/recipes/ros-noetic-amcl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-amcl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-amcl/build_catkin.sh b/recipes/ros-noetic-amcl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-amcl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-amcl/recipe.yaml b/recipes/ros-noetic-amcl/recipe.yaml new file mode 100644 index 000000000..b57446848 --- /dev/null +++ b/recipes/ros-noetic-amcl/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-amcl + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/amcl/1.17.3-1 + folder: ros-noetic-amcl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-map-server + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-angles/bld_catkin.bat b/recipes/ros-noetic-angles/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-angles/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-angles/build_catkin.sh b/recipes/ros-noetic-angles/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-angles/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-angles/recipe.yaml b/recipes/ros-noetic-angles/recipe.yaml new file mode 100644 index 000000000..a64694f52 --- /dev/null +++ b/recipes/ros-noetic-angles/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-angles + version: 1.9.13 +source: + git_url: https://github.com/ros-gbp/geometry_angles_utils-release.git + git_rev: release/noetic/angles/1.9.13-1 + folder: ros-noetic-angles/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-audio-common-msgs/bld_catkin.bat b/recipes/ros-noetic-audio-common-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-audio-common-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-audio-common-msgs/build_catkin.sh b/recipes/ros-noetic-audio-common-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-audio-common-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-audio-common-msgs/recipe.yaml b/recipes/ros-noetic-audio-common-msgs/recipe.yaml new file mode 100644 index 000000000..743857c1d --- /dev/null +++ b/recipes/ros-noetic-audio-common-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-audio-common-msgs + version: 0.3.17 +source: + git_url: https://github.com/ros-gbp/audio_common-release.git + git_rev: release/noetic/audio_common_msgs/0.3.17-1 + folder: ros-noetic-audio-common-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-base-local-planner/bld_catkin.bat b/recipes/ros-noetic-base-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-base-local-planner/build_catkin.sh b/recipes/ros-noetic-base-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-base-local-planner/recipe.yaml b/recipes/ros-noetic-base-local-planner/recipe.yaml new file mode 100644 index 000000000..40df1d79b --- /dev/null +++ b/recipes/ros-noetic-base-local-planner/recipe.yaml @@ -0,0 +1,89 @@ +package: + name: ros-noetic-base-local-planner + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/base_local_planner/1.17.3-1 + folder: ros-noetic-base-local-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-bond-core/bld_catkin.bat b/recipes/ros-noetic-bond-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-bond-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-bond-core/build_catkin.sh b/recipes/ros-noetic-bond-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-bond-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-bond-core/recipe.yaml b/recipes/ros-noetic-bond-core/recipe.yaml new file mode 100644 index 000000000..5722d5e17 --- /dev/null +++ b/recipes/ros-noetic-bond-core/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-bond-core + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/bond_core/1.8.6-1 + folder: ros-noetic-bond-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bond + - ros-noetic-bondcpp + - ros-noetic-bondpy + - ros-noetic-smclib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-bond/bld_catkin.bat b/recipes/ros-noetic-bond/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-bond/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-bond/build_catkin.sh b/recipes/ros-noetic-bond/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-bond/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-bond/recipe.yaml b/recipes/ros-noetic-bond/recipe.yaml new file mode 100644 index 000000000..36a541bc6 --- /dev/null +++ b/recipes/ros-noetic-bond/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-bond + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/bond/1.8.6-1 + folder: ros-noetic-bond/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-bondcpp/bld_catkin.bat b/recipes/ros-noetic-bondcpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-bondcpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-bondcpp/build_catkin.sh b/recipes/ros-noetic-bondcpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-bondcpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-bondcpp/recipe.yaml b/recipes/ros-noetic-bondcpp/recipe.yaml new file mode 100644 index 000000000..df6caabd1 --- /dev/null +++ b/recipes/ros-noetic-bondcpp/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-bondcpp + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/bondcpp/1.8.6-1 + folder: ros-noetic-bondcpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - libuuid + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bond + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-roscpp + - ros-noetic-smclib + run: + - boost-cpp + - libuuid + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bond + - ros-noetic-roscpp + - ros-noetic-smclib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-bondpy/bld_catkin.bat b/recipes/ros-noetic-bondpy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-bondpy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-bondpy/build_catkin.sh b/recipes/ros-noetic-bondpy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-bondpy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-bondpy/recipe.yaml b/recipes/ros-noetic-bondpy/recipe.yaml new file mode 100644 index 000000000..68174ab8f --- /dev/null +++ b/recipes/ros-noetic-bondpy/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-bondpy + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/bondpy/1.8.6-1 + folder: ros-noetic-bondpy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bond + - ros-noetic-catkin + - ros-noetic-rospy + - ros-noetic-smclib + - setuptools + run: + - libuuid + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-smclib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml b/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml new file mode 100644 index 000000000..39c61a32c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-camera-calibration-parsers + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/camera_calibration_parsers/1.12.0-1 + folder: ros-noetic-camera-calibration-parsers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosbash + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - yaml-cpp + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-sensor-msgs + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-calibration/bld_catkin.bat b/recipes/ros-noetic-camera-calibration/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-calibration/build_catkin.sh b/recipes/ros-noetic-camera-calibration/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-calibration/recipe.yaml b/recipes/ros-noetic-camera-calibration/recipe.yaml new file mode 100644 index 000000000..7a341a7e8 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-camera-calibration + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/camera_calibration/1.17.0-1 + folder: ros-noetic-camera-calibration/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - ros-noetic-message-filters + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - ros-noetic-message-filters + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-info-manager/bld_catkin.bat b/recipes/ros-noetic-camera-info-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-info-manager/build_catkin.sh b/recipes/ros-noetic-camera-info-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-info-manager/recipe.yaml b/recipes/ros-noetic-camera-info-manager/recipe.yaml new file mode 100644 index 000000000..8916b68af --- /dev/null +++ b/recipes/ros-noetic-camera-info-manager/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-camera-info-manager + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/camera_info_manager/1.12.0-1 + folder: ros-noetic-camera-info-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-catkin/activate.bat b/recipes/ros-noetic-catkin/activate.bat new file mode 100644 index 000000000..48ff1d713 --- /dev/null +++ b/recipes/ros-noetic-catkin/activate.bat @@ -0,0 +1,15 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@REM Don't do anything when we are in conda build. +@if defined SYS_PREFIX exit /b 0 + +@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins" + +@call "%CONDA_PREFIX%\Library\local_setup.bat" +@set PYTHONHOME= +@set "ROS_OS_OVERRIDE=conda:win64" +@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros" +@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library" +@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe" diff --git a/recipes/ros-noetic-catkin/activate.ps1 b/recipes/ros-noetic-catkin/activate.ps1 new file mode 100644 index 000000000..137e67aef --- /dev/null +++ b/recipes/ros-noetic-catkin/activate.ps1 @@ -0,0 +1,16 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +# Don't do anything when we are in conda build. +if ($null -ne ${env:SYS_PREFIX}) { Exit 0 } + +$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins" + +& "${env:CONDA_PREFIX}\Library\local_setup.ps1" + +$Env:PYTHONHOME='' +$Env:ROS_OS_OVERRIDE='conda:win64' +$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros" +$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library" +$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe" diff --git a/recipes/ros-noetic-catkin/activate.sh b/recipes/ros-noetic-catkin/activate.sh new file mode 100644 index 000000000..aece97080 --- /dev/null +++ b/recipes/ros-noetic-catkin/activate.sh @@ -0,0 +1,26 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +# if [ -z "${CONDA_PREFIX}" ]; then +# exit 0; +# fi + +# Not sure if this is necessary on UNIX? +# export QT_PLUGIN_PATH=$CONDA_PREFIX\plugins + +if [ "$CONDA_BUILD" = "1" -a "$target_platform" != "$build_platform" ]; then + # ignore sourcing + echo "Not activating ROS when cross-compiling"; +else + source $CONDA_PREFIX/setup.sh +fi + +case "$OSTYPE" in + darwin*) export ROS_OS_OVERRIDE="conda:osx"; export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp";; + linux*) export ROS_OS_OVERRIDE="conda:linux";; +esac + +export ROS_ETC_DIR=$CONDA_PREFIX/etc/ros +export AMENT_PREFIX_PATH=$CONDA_PREFIX + +# Looks unnecessary for UNIX +# unset PYTHONHOME= diff --git a/recipes/ros-noetic-catkin/bld_catkin.bat b/recipes/ros-noetic-catkin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-catkin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-catkin/build_catkin.sh b/recipes/ros-noetic-catkin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-catkin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-catkin/deactivate.bat b/recipes/ros-noetic-catkin/deactivate.bat new file mode 100644 index 000000000..6de79ccaf --- /dev/null +++ b/recipes/ros-noetic-catkin/deactivate.bat @@ -0,0 +1,18 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@set ROS_OS_OVERRIDE= +@set ROS_DISTRO= +@set ROS_ETC_DIR= +@set ROS_PACKAGE_PATH= +@set ROS_PYTHON_VERSION= +@set ROS_VERSION= +@set PYTHONHOME= +@set PYTHONPATH= +@set CMAKE_PREFIX_PATH= +@set AMENT_PREFIX_PATH= +@set COLCON_PREFIX_PATH= +@set QT_PLUGIN_PATH= +@set ROS_LOCALHOST_ONLY= +@set ament_python_executable= diff --git a/recipes/ros-noetic-catkin/deactivate.ps1 b/recipes/ros-noetic-catkin/deactivate.ps1 new file mode 100644 index 000000000..9db51e1c2 --- /dev/null +++ b/recipes/ros-noetic-catkin/deactivate.ps1 @@ -0,0 +1,18 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +$Env:ROS_OS_OVERRIDE='' +$Env:ROS_DISTRO='' +$Env:ROS_ETC_DIR='' +$Env:ROS_PACKAGE_PATH='' +$Env:ROS_PYTHON_VERSION='' +$Env:ROS_VERSION='' +$Env:PYTHONHOME='' +$Env:PYTHONPATH='' +$Env:CMAKE_PREFIX_PATH='' +$Env:AMENT_PREFIX_PATH='' +$Env:COLCON_PREFIX_PATH='' +$Env:QT_PLUGIN_PATH='' +$Env:ROS_LOCALHOST_ONLY='' +$Env:ament_python_executable='' diff --git a/recipes/ros-noetic-catkin/deactivate.sh b/recipes/ros-noetic-catkin/deactivate.sh new file mode 100644 index 000000000..87d4d8359 --- /dev/null +++ b/recipes/ros-noetic-catkin/deactivate.sh @@ -0,0 +1,21 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if [ -z "${CONDA_PREFIX}" ]; then + exit 0 +fi + +unset ROS_DISTRO +unset ROS_ETC_DIR +unset ROS_PACKAGE_PATH +unset ROS_PYTHON_VERSION +unset CMAKE_PREFIX_PATH +unset AMENT_PREFIX_PATH +unset COLCON_PREFIX_PATH +unset ROS_VERSION +unset ROS_OS_OVERRIDE +# unset PYTHONPATH +# unset PYTHONHOME +# unset QT_PLUGIN_PATH +unset ROS_LOCALHOST_ONLY +unset ament_python_executable +unset RMW_IMPLEMENTATION diff --git a/recipes/ros-noetic-catkin/patch/ros-noetic-catkin.patch b/recipes/ros-noetic-catkin/patch/ros-noetic-catkin.patch new file mode 100644 index 000000000..9e2d81501 --- /dev/null +++ b/recipes/ros-noetic-catkin/patch/ros-noetic-catkin.patch @@ -0,0 +1,268 @@ +diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake +index df36e23..475eb97 100644 +--- a/cmake/catkin_package.cmake ++++ b/cmake/catkin_package.cmake +@@ -254,6 +254,17 @@ function(_catkin_package) + list(APPEND _PKG_CONFIG_LIBRARIES ${PROJECT_DEPENDENCIES_LIBRARIES}) + endif() + ++ set(_CONDA_ADJUSTED_PKG_CONFIG "") ++ foreach(library ${_PKG_CONFIG_LIBRARIES}) ++ get_filename_component(library_fn "${library}" NAME_WE) ++ if ("${library_fn}" MATCHES "lib(pthread|rt|dl)$") ++ list(APPEND _CONDA_ADJUSTED_PKG_CONFIG ${CMAKE_MATCH_1}) ++ else() ++ list(APPEND _CONDA_ADJUSTED_PKG_CONFIG ${library}) ++ endif() ++ endforeach() ++ set(_PKG_CONFIG_LIBRARIES ${_CONDA_ADJUSTED_PKG_CONFIG}) ++ + # resolve imported library targets + catkin_replace_imported_library_targets(_PKG_CONFIG_LIBRARIES ${_PKG_CONFIG_LIBRARIES}) + +diff --git a/cmake/empy.cmake b/cmake/empy.cmake +index 3e07606..3a24c8c 100644 +--- a/cmake/empy.cmake ++++ b/cmake/empy.cmake +@@ -22,19 +22,13 @@ function(find_python_module module) + endfunction(find_python_module) + + if(NOT EMPY_SCRIPT) +- find_program(EMPY_EXECUTABLE empy) +- if(NOT EMPY_EXECUTABLE) +- # On OSX, there's an em.py, but not an executable empy script +- find_python_module(em) +- if(NOT PY_EM) +- message(FATAL_ERROR "Unable to find either executable 'empy' or Python module 'em'... try installing the package 'python3-empy'") +- endif() +- # ensure to use cmake-style path separators on Windows +- file(TO_CMAKE_PATH "${PY_EM}" EMPY_SCRIPT) +- else() +- # ensure to use cmake-style path separators on Windows +- file(TO_CMAKE_PATH "${EMPY_EXECUTABLE}" EMPY_SCRIPT) ++ # On OSX, there's an em.py, but not an executable empy script ++ find_python_module(em) ++ if(NOT PY_EM) ++ message(FATAL_ERROR "Unable to find either executable 'empy' or Python module 'em'... try installing the package 'python3-empy'") + endif() ++ # ensure to use cmake-style path separators on Windows ++ file(TO_CMAKE_PATH "${PY_EM}" EMPY_SCRIPT) + set(EMPY_SCRIPT "${EMPY_SCRIPT}" CACHE STRING "Empy script" FORCE) + endif() + message(STATUS "Using empy: ${EMPY_SCRIPT}") +diff --git a/cmake/templates/_setup_util.py.in b/cmake/templates/_setup_util.py.in +index e73934b..33ac6d4 100755 +--- a/cmake/templates/_setup_util.py.in ++++ b/cmake/templates/_setup_util.py.in +@@ -1,4 +1,4 @@ +-#!@PYTHON_EXECUTABLE@ ++#!/usr/bin/env python + # -*- coding: utf-8 -*- + + # Software License Agreement (BSD License) +@@ -59,12 +59,14 @@ if IS_WINDOWS: + # subfolder of workspace prepended to CMAKE_PREFIX_PATH + ENV_VAR_SUBFOLDERS = { + 'CMAKE_PREFIX_PATH': '', +- 'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': @CATKIN_LIB_ENVIRONMENT_PATHS@, ++ # 'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': @CATKIN_LIB_ENVIRONMENT_PATHS@, + 'PATH': PATH_TO_ADD_SUFFIX, + 'PKG_CONFIG_PATH': @CATKIN_PKGCONFIG_ENVIRONMENT_PATHS@, +- 'PYTHONPATH': '@PYTHON_INSTALL_DIR@', ++ # 'PYTHONPATH': '@PYTHON_INSTALL_DIR@', + } + ++if IS_WINDOWS or os.path.dirname(os.path.realpath(__file__)) != sys.prefix: ++ ENV_VAR_SUBFOLDERS['PYTHONPATH'] = '@PYTHON_INSTALL_DIR@' + + def rollback_env_variables(environ, env_var_subfolders): + """ +diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in +index 4e52046..1e90b8d 100644 +--- a/cmake/templates/pkgConfig.cmake.in ++++ b/cmake/templates/pkgConfig.cmake.in +@@ -119,10 +119,12 @@ endif() + set(libraries "@PKG_CONFIG_LIBRARIES@") + foreach(library ${libraries}) + # keep build configuration keywords, target names and absolute libraries as-is +- if("${library}" MATCHES "^(debug|optimized|general)$") ++ if("${library}" MATCHES "^(debug|optimized|general|rt|pthread|dl)$") + list(APPEND @PROJECT_NAME@_LIBRARIES ${library}) + elseif(${library} MATCHES "^-l") + list(APPEND @PROJECT_NAME@_LIBRARIES ${library}) ++ elseif(${library} MATCHES "^-framework") ++ list(APPEND @PROJECT_NAME@_LIBRARIES ${library}) + elseif(${library} MATCHES "^-") + # This is a linker flag/option (like -pthread) + # There's no standard variable for these, so create an interface library to hold it +diff --git a/cmake/templates/setup.sh.in b/cmake/templates/setup.sh.in +index 07e5276..97cb460 100644 +--- a/cmake/templates/setup.sh.in ++++ b/cmake/templates/setup.sh.in +@@ -11,13 +11,29 @@ + + # since this file is sourced either use the provided _CATKIN_SETUP_DIR + # or fall back to the destination set at configure time ++# _SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py" ++ ++if [ ! -z "$ZSH_VERSION" ]; then ++ CATKIN_SHELL=zsh ++elif [ ! -z "$BASH_VERSION" ]; then ++ CATKIN_SHELL=bash ++else ++ CATKIN_SHELL=sh ++fi ++ + : ${_CATKIN_SETUP_DIR:=@SETUP_DIR@} ++: ${_CONDA_SETUP_DIR:=$CONDA_PREFIX/etc/conda/activate.d/} + _SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py" ++ + unset _CATKIN_SETUP_DIR + + if [ ! -f "$_SETUP_UTIL" ]; then +- echo "Missing Python script: $_SETUP_UTIL" +- return 22 ++ _SETUP_UTIL="$_CONDA_SETUP_DIR/ros_setup_util.py" ++ ++ if [ ! -f "$_SETUP_UTIL" ]; then ++ echo "Missing Python script: $_SETUP_UTIL" ++ return 22 ++ fi + fi + + # detect if running on Darwin platform +diff --git a/cmake/tools/rt.cmake b/cmake/tools/rt.cmake +index da5ed7d..5fb71d5 100644 +--- a/cmake/tools/rt.cmake ++++ b/cmake/tools/rt.cmake +@@ -34,14 +34,5 @@ + get_property(ENABLED_LANGUAGES_LIST GLOBAL PROPERTY ENABLED_LANGUAGES) + list(FIND ENABLED_LANGUAGES_LIST "CXX" _cxx_index) + if(NOT (APPLE OR WIN32 OR MINGW OR ANDROID) AND "${_cxx_index}" GREATER -1) +- if (${CMAKE_VERSION} VERSION_LESS 2.8.4) +- # cmake later than 2.8.0 appears to have a better find_library +- # that knows about the ABI of the compiler. For lucid we just +- # depend on the linker to find it for us. +- set(RT_LIBRARY rt CACHE FILEPATH "Hacked find of rt for cmake < 2.8.4") +- else() +- find_library(RT_LIBRARY rt) +- assert_file_exists(${RT_LIBRARY} "RT Library") +- endif() +- #message(STATUS "RT_LIBRARY: ${RT_LIBRARY}") ++ set(RT_LIBRARY rt) + endif() +diff --git a/cmake/python.cmake b/cmake/python.cmake +index c72b8599..6b39d3a2 100644 +--- a/cmake/python.cmake ++++ b/cmake/python.cmake +@@ -8,9 +8,6 @@ message(STATUS "Using PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}") + set(_PYTHON_PATH_VERSION_SUFFIX "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") + + set(enable_setuptools_deb_layout OFF) +-if(EXISTS "/etc/debian_version") +- set(enable_setuptools_deb_layout ON) +-endif() + option(SETUPTOOLS_DEB_LAYOUT "Enable debian style python package layout" ${enable_setuptools_deb_layout}) + + if(SETUPTOOLS_DEB_LAYOUT) +diff --git a/cmake/interrogate_setup_dot_py.py b/cmake/interrogate_setup_dot_py.py +index 5e25fbf8..e8d70451 100644 +--- a/cmake/interrogate_setup_dot_py.py ++++ b/cmake/interrogate_setup_dot_py.py +@@ -40,14 +40,14 @@ + setup_modules = [] + + try: +- import distutils.core +- setup_modules.append(distutils.core) ++ import setuptools ++ setup_modules.append(setuptools) + except ImportError: + pass + + try: +- import setuptools +- setup_modules.append(setuptools) ++ import distutils.core ++ setup_modules.append(distutils.core) + except ImportError: + pass + +diff --git a/cmake/catkin_libraries.cmake b/cmake/catkin_libraries.cmake +index b19f4c8aa..de8fd2d1f 100644 +--- a/cmake/catkin_libraries.cmake ++++ b/cmake/catkin_libraries.cmake +@@ -114,6 +114,40 @@ function(catkin_unpack_libraries_with_build_configuration VAR) + set(${VAR} "${result}" PARENT_SCOPE) + endfunction() + ++# ++# Find libraries by imported location or soname with location dir as hint ++# ++# :param VAR: the output variable name ++# :type VAR: string ++# :param LIB: the imported target to find the library for ++# :type LIB: string ++# :type ARGN: selected config to query in the target's properties ++# :type ARGN: string ++# ++# @public ++# ++function(catkin_find_library_imported_location_library VAR LIB) ++ set(lib ${LIB}) ++ if(ARGN) ++ set(cfg _${ARGN}) ++ endif() ++ set(imported_location_libnames) ++ get_target_property(imported_soname ${lib} IMPORTED_SONAME${cfg}) ++ if(imported_soname) ++ list(APPEND imported_location_libnames ${imported_soname}) ++ endif() ++ get_target_property(imported_location ${lib} IMPORTED_LOCATION${cfg}) ++ if(imported_location) ++ get_filename_component(imported_location_name ${imported_location} NAME) ++ get_filename_component(imported_location_dir ${imported_location} DIRECTORY) ++ list(APPEND imported_location_libnames ${imported_location_name}) ++ endif() ++ if(imported_location_libnames) ++ find_library(imported_location_library NAMES ${imported_location_libnames} HINTS ${imported_location_dir} NO_CACHE) ++ endif() ++ set(${VAR} "${imported_location_library}" PARENT_SCOPE) ++endfunction() ++ + # + # Replace imported library target names with the library name. + # +@@ -142,10 +176,9 @@ function(catkin_replace_imported_library_targets VAR) + list(APPEND result ${${lib}_resolved_libs}) + endif() + elseif(${${lib}_imported}) +- set(imported_libraries) # empty list +- get_target_property(${lib}_imported_location ${lib} IMPORTED_LOCATION) +- if(${lib}_imported_location) +- list(APPEND imported_libraries ${${lib}_imported_location}) ++ catkin_find_library_imported_location_library(${lib}_imported_location_library ${lib}) ++ if(${lib}_imported_location_library) ++ list(APPEND imported_libraries ${${lib}_imported_location_library}) + else() + get_target_property(${lib}_imported_configurations ${lib} IMPORTED_CONFIGURATIONS) + foreach(cfg ${${lib}_imported_configurations}) +@@ -156,11 +189,14 @@ function(catkin_replace_imported_library_targets VAR) + if(NOT ${lib}_imported_location_${cfg}) + get_target_property(${lib}_imported_location_${cfg} ${lib} IMPORTED_LOCATION_${cfg}) + endif() ++ if(${lib}_imported_location_${cfg}) ++ list(APPEND imported_libraries ${${lib}_imported_location_${cfg}}) ++ endif() + else() +- get_target_property(${lib}_imported_location_${cfg} ${lib} IMPORTED_LOCATION_${cfg}) +- endif() +- if(${lib}_imported_location_${cfg}) +- list(APPEND imported_libraries ${${lib}_imported_location_${cfg}}) ++ catkin_find_library_imported_location_library(${lib}_imported_location_library_${cfg} ${lib} ${cfg}) ++ if(${lib}_imported_location_library_${cfg}) ++ list(APPEND imported_libraries ${${lib}_imported_location_library_${cfg}}) ++ endif() + endif() + endforeach() + endif() diff --git a/recipes/ros-noetic-catkin/recipe.yaml b/recipes/ros-noetic-catkin/recipe.yaml new file mode 100644 index 000000000..152b7520d --- /dev/null +++ b/recipes/ros-noetic-catkin/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-catkin + version: 0.8.10 +source: + git_url: https://github.com/ros-gbp/catkin-release.git + git_rev: release/noetic/catkin/0.8.10-1 + folder: ros-noetic-catkin/src/work + patches: + - patch/ros-noetic-catkin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - empy + - gmock + - gtest + - mock + - nose + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - setuptools + run: + - catkin_pkg + - cmake + - empy + - gmock + - gtest + - nose + - python + - ros-distro-mutex 0.5 noetic + - setuptools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-chomp-motion-planner/recipe.yaml b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml new file mode 100644 index 000000000..3090d7e9b --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-chomp-motion-planner + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/chomp_motion_planner/1.1.13-2 + folder: ros-noetic-chomp-motion-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-class-loader/bld_catkin.bat b/recipes/ros-noetic-class-loader/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-class-loader/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-class-loader/build_catkin.sh b/recipes/ros-noetic-class-loader/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-class-loader/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-class-loader/patch/ros-noetic-class-loader.patch b/recipes/ros-noetic-class-loader/patch/ros-noetic-class-loader.patch new file mode 100644 index 000000000..6e43ea08c --- /dev/null +++ b/recipes/ros-noetic-class-loader/patch/ros-noetic-class-loader.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5131553..bf5b701 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -23,7 +23,7 @@ if(${catkin_FOUND}) + find_package(Poco REQUIRED COMPONENTS Foundation) + catkin_package( + INCLUDE_DIRS include +- LIBRARIES ${PROJECT_NAME} ${Poco_LIBRARIES} ++ LIBRARIES ${PROJECT_NAME} ${Poco_LIBRARIES} ${console_bridge_LIBRARIES} + DEPENDS Boost Poco console_bridge + CFG_EXTRAS class_loader-extras.cmake + ) diff --git a/recipes/ros-noetic-class-loader/recipe.yaml b/recipes/ros-noetic-class-loader/recipe.yaml new file mode 100644 index 000000000..03d242408 --- /dev/null +++ b/recipes/ros-noetic-class-loader/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-class-loader + version: 0.5.0 +source: + git_url: https://github.com/ros-gbp/class_loader-release.git + git_rev: release/noetic/class_loader/0.5.0-1 + folder: ros-noetic-class-loader/src/work + patches: + - patch/ros-noetic-class-loader.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - poco + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + run: + - boost-cpp + - console_bridge + - poco + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat b/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh b/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml b/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml new file mode 100644 index 000000000..f7f74c8d7 --- /dev/null +++ b/recipes/ros-noetic-clear-costmap-recovery/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-clear-costmap-recovery + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/clear_costmap_recovery/1.17.3-1 + folder: ros-noetic-clear-costmap-recovery/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2-ros + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cmake-modules/bld_catkin.bat b/recipes/ros-noetic-cmake-modules/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cmake-modules/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cmake-modules/build_catkin.sh b/recipes/ros-noetic-cmake-modules/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cmake-modules/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cmake-modules/patch/ros-noetic-cmake-modules.patch b/recipes/ros-noetic-cmake-modules/patch/ros-noetic-cmake-modules.patch new file mode 100644 index 000000000..1d713339c --- /dev/null +++ b/recipes/ros-noetic-cmake-modules/patch/ros-noetic-cmake-modules.patch @@ -0,0 +1,23 @@ +diff --git a/cmake/Modules/FindUUID.cmake b/cmake/Modules/FindUUID.cmake +index 84142f4..e9d1668 100644 +--- a/cmake/Modules/FindUUID.cmake ++++ b/cmake/Modules/FindUUID.cmake +@@ -7,12 +7,12 @@ + # portability + # UUID_LIBRARIES - full path to the libraries + if(WIN32) +- find_library(UUID_LIBRARIES NAMES Rpcrt4 PATH) +- +- if(UUID_LIBRARIES) +- set(UUID_FOUND true) +- endif(UUID_LIBRARIES) +- ++ set(UUID_LIBRARIES Rpcrt4.lib) ++ set(UUID_FOUND true) ++elseif(APPLE) ++ set(UUID_FOUND true) ++ set(UUID_INCLUDE_DIRS "") ++ set(UUID_LIBRARIES "") + else() + find_path(UUID_INCLUDE_DIRS uuid/uuid.h) + find_library(UUID_LIBRARIES NAMES uuid PATH) diff --git a/recipes/ros-noetic-cmake-modules/recipe.yaml b/recipes/ros-noetic-cmake-modules/recipe.yaml new file mode 100644 index 000000000..a47dfe346 --- /dev/null +++ b/recipes/ros-noetic-cmake-modules/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-cmake-modules + version: 0.5.0 +source: + git_url: https://github.com/ros-gbp/cmake_modules-release.git + git_rev: release/noetic/cmake_modules/0.5.0-1 + folder: ros-noetic-cmake-modules/src/work + patches: + - patch/ros-noetic-cmake-modules.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-code-coverage/bld_catkin.bat b/recipes/ros-noetic-code-coverage/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-code-coverage/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-code-coverage/build_catkin.sh b/recipes/ros-noetic-code-coverage/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-code-coverage/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-code-coverage/recipe.yaml b/recipes/ros-noetic-code-coverage/recipe.yaml new file mode 100644 index 000000000..ccdd473b8 --- /dev/null +++ b/recipes/ros-noetic-code-coverage/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-code-coverage + version: 0.4.4 +source: + git_url: https://github.com/mikeferguson/code_coverage-gbp.git + git_rev: release/noetic/code_coverage/0.4.4-1 + folder: ros-noetic-code-coverage/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - coverage + - lcov + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - coverage + - lcov + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-combined-robot-hw/bld_catkin.bat b/recipes/ros-noetic-combined-robot-hw/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-combined-robot-hw/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-combined-robot-hw/build_catkin.sh b/recipes/ros-noetic-combined-robot-hw/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-combined-robot-hw/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-combined-robot-hw/recipe.yaml b/recipes/ros-noetic-combined-robot-hw/recipe.yaml new file mode 100644 index 000000000..35599fe6e --- /dev/null +++ b/recipes/ros-noetic-combined-robot-hw/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-combined-robot-hw + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/combined_robot_hw/0.20.0-1 + folder: ros-noetic-combined-robot-hw/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-common-msgs/bld_catkin.bat b/recipes/ros-noetic-common-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-common-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-common-msgs/build_catkin.sh b/recipes/ros-noetic-common-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-common-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-common-msgs/recipe.yaml b/recipes/ros-noetic-common-msgs/recipe.yaml new file mode 100644 index 000000000..f7b220b9a --- /dev/null +++ b/recipes/ros-noetic-common-msgs/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-common-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/common_msgs/1.13.1-1 + folder: ros-noetic-common-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-stereo-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-stereo-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-common-tutorials/bld_catkin.bat b/recipes/ros-noetic-common-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-common-tutorials/build_catkin.sh b/recipes/ros-noetic-common-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-common-tutorials/recipe.yaml b/recipes/ros-noetic-common-tutorials/recipe.yaml new file mode 100644 index 000000000..c8a0796d9 --- /dev/null +++ b/recipes/ros-noetic-common-tutorials/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-common-tutorials + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/common_tutorials/0.2.0-1 + folder: ros-noetic-common-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-tutorials + - ros-noetic-catkin + - ros-noetic-nodelet-tutorial-math + - ros-noetic-pluginlib-tutorials + - ros-noetic-turtle-actionlib + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-tutorials + - ros-noetic-nodelet-tutorial-math + - ros-noetic-pluginlib-tutorials + - ros-noetic-turtle-actionlib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-compass-msgs/bld_catkin.bat b/recipes/ros-noetic-compass-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-compass-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-compass-msgs/build_catkin.sh b/recipes/ros-noetic-compass-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-compass-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-compass-msgs/recipe.yaml b/recipes/ros-noetic-compass-msgs/recipe.yaml new file mode 100644 index 000000000..896966700 --- /dev/null +++ b/recipes/ros-noetic-compass-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-compass-msgs + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/compass.git + git_rev: release/noetic/compass_msgs/1.0.3-1 + folder: ros-noetic-compass-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat b/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh b/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml b/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml new file mode 100644 index 000000000..56dd4b2e9 --- /dev/null +++ b/recipes/ros-noetic-compressed-depth-image-transport/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-compressed-depth-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/compressed_depth_image_transport/1.14.0-1 + folder: ros-noetic-compressed-depth-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat b/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-compressed-image-transport/build_catkin.sh b/recipes/ros-noetic-compressed-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-compressed-image-transport/recipe.yaml b/recipes/ros-noetic-compressed-image-transport/recipe.yaml new file mode 100644 index 000000000..b6af7b4ca --- /dev/null +++ b/recipes/ros-noetic-compressed-image-transport/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-compressed-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/compressed_image_transport/1.14.0-1 + folder: ros-noetic-compressed-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-control-msgs/bld_catkin.bat b/recipes/ros-noetic-control-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-control-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-control-msgs/build_catkin.sh b/recipes/ros-noetic-control-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-control-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-control-msgs/recipe.yaml b/recipes/ros-noetic-control-msgs/recipe.yaml new file mode 100644 index 000000000..a0e50b228 --- /dev/null +++ b/recipes/ros-noetic-control-msgs/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-control-msgs + version: 1.5.2 +source: + git_url: https://github.com/ros-gbp/control_msgs-release.git + git_rev: release/noetic/control_msgs/1.5.2-1 + folder: ros-noetic-control-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-control-toolbox/bld_catkin.bat b/recipes/ros-noetic-control-toolbox/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-control-toolbox/build_catkin.sh b/recipes/ros-noetic-control-toolbox/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-control-toolbox/recipe.yaml b/recipes/ros-noetic-control-toolbox/recipe.yaml new file mode 100644 index 000000000..7d82583ce --- /dev/null +++ b/recipes/ros-noetic-control-toolbox/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-control-toolbox + version: 1.19.0 +source: + git_url: https://github.com/ros-gbp/control_toolbox-release.git + git_rev: release/noetic/control_toolbox/1.19.0-1 + folder: ros-noetic-control-toolbox/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-control-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-generation + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-std-msgs + - tinyxml + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-controller-interface/bld_catkin.bat b/recipes/ros-noetic-controller-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-controller-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-controller-interface/build_catkin.sh b/recipes/ros-noetic-controller-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-controller-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-controller-interface/recipe.yaml b/recipes/ros-noetic-controller-interface/recipe.yaml new file mode 100644 index 000000000..a0e96c511 --- /dev/null +++ b/recipes/ros-noetic-controller-interface/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-controller-interface + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/controller_interface/0.20.0-1 + folder: ros-noetic-controller-interface/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-hardware-interface + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hardware-interface + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat b/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh b/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-controller-manager-msgs/recipe.yaml b/recipes/ros-noetic-controller-manager-msgs/recipe.yaml new file mode 100644 index 000000000..6e0ec39cb --- /dev/null +++ b/recipes/ros-noetic-controller-manager-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-controller-manager-msgs + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/controller_manager_msgs/0.20.0-1 + folder: ros-noetic-controller-manager-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-std-msgs + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-controller-manager/bld_catkin.bat b/recipes/ros-noetic-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-controller-manager/build_catkin.sh b/recipes/ros-noetic-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-controller-manager/recipe.yaml b/recipes/ros-noetic-controller-manager/recipe.yaml new file mode 100644 index 000000000..101f1ef16 --- /dev/null +++ b/recipes/ros-noetic-controller-manager/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-controller-manager + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/controller_manager/0.20.0-1 + folder: ros-noetic-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-costmap-2d/bld_catkin.bat b/recipes/ros-noetic-costmap-2d/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-costmap-2d/build_catkin.sh b/recipes/ros-noetic-costmap-2d/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-costmap-2d/recipe.yaml b/recipes/ros-noetic-costmap-2d/recipe.yaml new file mode 100644 index 000000000..3bc50d486 --- /dev/null +++ b/recipes/ros-noetic-costmap-2d/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-costmap-2d + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/costmap_2d/1.17.3-1 + folder: ros-noetic-costmap-2d/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-map-server + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-costmap-converter/bld_catkin.bat b/recipes/ros-noetic-costmap-converter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-costmap-converter/build_catkin.sh b/recipes/ros-noetic-costmap-converter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch new file mode 100644 index 000000000..2713f9fec --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch @@ -0,0 +1,77 @@ +From cb6af72f331a881fb399e651d6c9aaaf536a63e3 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer +Date: Thu, 10 Aug 2023 13:29:02 -0400 +Subject: [PATCH] Make BlobDetector inherit from cv::Feature2D + +BlobDetector currently inherits from cv::SimpleBlobDetector, which is an +interface class that doesn't provide any functionality itself. On the +other hand, every time OpenCV adds a new pure virtual method to this +interface, it breaks BlobDetector. + +This patch makes BlobDetector inherit from cv::Feature2D instead, which +should hopefully have fewer breaking changes. This requires adding a +typedef for Params, which was originally provided by +cv::SimpleBlobDetector. I also took the opportunity to make all the +parameters reference this typedef rather than directly use +cv::SimpleBlobDetector::Params. + +It is likely possible to remove inheritance from BlobDetector altogether, +since it doesn't appear to use any functionality from cv::Feature2D +either, but I decided not to do this because BlobDetector is part of the +public interface, and this could increase the likelihood of breaking +downstream packages that use this class (if any do). +--- + .../costmap_to_dynamic_obstacles/blob_detector.h | 10 ++++++---- + src/costmap_to_dynamic_obstacles/blob_detector.cpp | 4 ++-- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +index ac9b80a..9bfe5bf 100644 +--- a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h ++++ b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +@@ -57,14 +57,16 @@ + * + * See http://docs.opencv.org/trunk/d0/d7a/classcv_1_1SimpleBlobDetector.html for the original class. + */ +-class BlobDetector : public cv::SimpleBlobDetector ++class BlobDetector : public cv::Feature2D + { + public: ++ typedef cv::SimpleBlobDetector::Params Params; ++ + //! Default constructor which optionally accepts custom parameters +- BlobDetector(const cv::SimpleBlobDetector::Params& parameters = cv::SimpleBlobDetector::Params()); ++ BlobDetector(const Params& parameters = Params()); + + //! Create shared instance of the blob detector with given parameters +- static cv::Ptr create(const BlobDetector::Params& params); ++ static cv::Ptr create(const Params& params); + + /** + * @brief Detects keypoints in an image and extracts contours +@@ -90,7 +92,7 @@ class BlobDetector : public cv::SimpleBlobDetector + const std::vector>& getContours() { return contours_; } + + //! Update internal parameters +- void updateParameters(const cv::SimpleBlobDetector::Params& parameters); ++ void updateParameters(const Params& parameters); + + protected: + struct Center +diff --git a/src/costmap_to_dynamic_obstacles/blob_detector.cpp b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +index c7352f4..564cb0c 100755 +--- a/src/costmap_to_dynamic_obstacles/blob_detector.cpp ++++ b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +@@ -2,9 +2,9 @@ + #include + #include + +-BlobDetector::BlobDetector(const SimpleBlobDetector::Params& parameters) : params_(parameters) {} ++BlobDetector::BlobDetector(const Params& parameters) : params_(parameters) {} + +-cv::Ptr BlobDetector::create(const cv::SimpleBlobDetector::Params& params) ++cv::Ptr BlobDetector::create(const Params& params) + { + return cv::Ptr (new BlobDetector(params)); // compatibility with older versions + //return cv::makePtr(params); + diff --git a/recipes/ros-noetic-costmap-converter/recipe.yaml b/recipes/ros-noetic-costmap-converter/recipe.yaml new file mode 100644 index 000000000..ee51e74a3 --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-costmap-converter + version: 0.0.13 +source: + git_url: https://github.com/rst-tu-dortmund/costmap_converter-release.git + git_rev: release/noetic/costmap_converter/0.0.13-1 + folder: ros-noetic-costmap-converter/src/work + patches: + - patch/ros-noetic-costmap-converter.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cpp-common/bld_catkin.bat b/recipes/ros-noetic-cpp-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cpp-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cpp-common/build_catkin.sh b/recipes/ros-noetic-cpp-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cpp-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cpp-common/recipe.yaml b/recipes/ros-noetic-cpp-common/recipe.yaml new file mode 100644 index 000000000..0c75394df --- /dev/null +++ b/recipes/ros-noetic-cpp-common/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-cpp-common + version: 0.7.3 +source: + git_url: https://github.com/ros-gbp/roscpp_core-release.git + git_rev: release/noetic/cpp_common/0.7.3-1 + folder: ros-noetic-cpp-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - boost-cpp + - console_bridge + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat b/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-cpp-common/build_catkin.sh b/recipes/ros-noetic-cras-cpp-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-cpp-common/recipe.yaml b/recipes/ros-noetic-cras-cpp-common/recipe.yaml new file mode 100644 index 000000000..755104f04 --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/recipe.yaml @@ -0,0 +1,94 @@ +package: + name: ros-noetic-cras-cpp-common + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_cpp_common/2.3.8-1 + folder: ros-noetic-cras-cpp-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + - urdfdom_headers + run: + - boost + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-class-loader + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-topic-tools + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-docs-common/bld_catkin.bat b/recipes/ros-noetic-cras-docs-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-docs-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-docs-common/build_catkin.sh b/recipes/ros-noetic-cras-docs-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-docs-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-docs-common/recipe.yaml b/recipes/ros-noetic-cras-docs-common/recipe.yaml new file mode 100644 index 000000000..583a17c58 --- /dev/null +++ b/recipes/ros-noetic-cras-docs-common/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-cras-docs-common + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_docs_common/2.3.8-1 + folder: ros-noetic-cras-docs-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosdoc-lite + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-msgs/bld_catkin.bat b/recipes/ros-noetic-cras-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-msgs/build_catkin.sh b/recipes/ros-noetic-cras-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-msgs/recipe.yaml b/recipes/ros-noetic-cras-msgs/recipe.yaml new file mode 100644 index 000000000..e702aaf4a --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-cras-msgs + version: 1.1.1 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/cras_msgs + git_rev: release/noetic/cras_msgs/1.1.1-1 + folder: ros-noetic-cras-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-py-common/bld_catkin.bat b/recipes/ros-noetic-cras-py-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-py-common/build_catkin.sh b/recipes/ros-noetic-cras-py-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-py-common/recipe.yaml b/recipes/ros-noetic-cras-py-common/recipe.yaml new file mode 100644 index 000000000..70bbf65c5 --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-cras-py-common + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_py_common/2.3.8-1 + folder: ros-noetic-cras-py-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-relative-positional-controller/bld_catkin.bat b/recipes/ros-noetic-cras-relative-positional-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-relative-positional-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-relative-positional-controller/build_catkin.sh b/recipes/ros-noetic-cras-relative-positional-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-relative-positional-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-relative-positional-controller/recipe.yaml b/recipes/ros-noetic-cras-relative-positional-controller/recipe.yaml new file mode 100644 index 000000000..87812cf28 --- /dev/null +++ b/recipes/ros-noetic-cras-relative-positional-controller/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-cras-relative-positional-controller + version: 2.0.0 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/cras_relative_positional_controller.git + git_rev: release/noetic/cras_relative_positional_controller/2.0.0-1 + folder: ros-noetic-cras-relative-positional-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roslint + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat b/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-topic-tools/build_catkin.sh b/recipes/ros-noetic-cras-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-topic-tools/recipe.yaml b/recipes/ros-noetic-cras-topic-tools/recipe.yaml new file mode 100644 index 000000000..b970e17c7 --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-cras-topic-tools + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_topic_tools/2.3.8-1 + folder: ros-noetic-cras-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-cras-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-msgs + - ros-noetic-topic-tools + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-cras-msgs + - ros-noetic-cras-py-common + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cv-bridge/bld_catkin.bat b/recipes/ros-noetic-cv-bridge/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cv-bridge/build_catkin.sh b/recipes/ros-noetic-cv-bridge/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch b/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch new file mode 100644 index 000000000..c6f45d381 --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/patch/ros-noetic-cv-bridge.patch @@ -0,0 +1,35 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ef804b9..6dac00e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,27 +3,9 @@ project(cv_bridge) + + find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs) + +-if(NOT ANDROID) +- find_package(PythonLibs) +- +- if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8") +- # Debian Buster +- find_package(Boost REQUIRED python37) +- else() +- # Ubuntu Focal +- find_package(Boost REQUIRED python) +- endif() +-else() +-find_package(Boost REQUIRED) +-endif() +- +-set(_opencv_version 4) +-find_package(OpenCV 4 QUIET) +-if(NOT OpenCV_FOUND) +- message(STATUS "Did not find OpenCV 4, trying OpenCV 3") +- set(_opencv_version 3) +-endif() ++find_package(Boost REQUIRED python) + +-find_package(OpenCV ${_opencv_version} REQUIRED ++find_package(OpenCV 4 QUIET) ++find_package(OpenCV 4 REQUIRED + COMPONENTS + opencv_core \ No newline at end of file diff --git a/recipes/ros-noetic-cv-bridge/recipe.yaml b/recipes/ros-noetic-cv-bridge/recipe.yaml new file mode 100644 index 000000000..0423f1bbb --- /dev/null +++ b/recipes/ros-noetic-cv-bridge/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-cv-bridge + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/cv_bridge/1.16.2-1 + folder: ros-noetic-cv-bridge/src/work + patches: + - patch/ros-noetic-cv-bridge.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-cv-camera/bld_catkin.bat b/recipes/ros-noetic-cv-camera/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cv-camera/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cv-camera/build_catkin.sh b/recipes/ros-noetic-cv-camera/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cv-camera/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cv-camera/recipe.yaml b/recipes/ros-noetic-cv-camera/recipe.yaml new file mode 100644 index 000000000..7551419d8 --- /dev/null +++ b/recipes/ros-noetic-cv-camera/recipe.yaml @@ -0,0 +1,81 @@ +package: + name: ros-noetic-cv-camera + version: 0.6.0 +source: + git_url: https://github.com/OTL/cv_camera-release.git + git_rev: release/noetic/cv_camera/0.6.0-1 + folder: ros-noetic-cv-camera/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-depth-image-proc/bld_catkin.bat b/recipes/ros-noetic-depth-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-depth-image-proc/build_catkin.sh b/recipes/ros-noetic-depth-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-depth-image-proc/recipe.yaml b/recipes/ros-noetic-depth-image-proc/recipe.yaml new file mode 100644 index 000000000..a63ae6d2d --- /dev/null +++ b/recipes/ros-noetic-depth-image-proc/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-depth-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/depth_image_proc/1.17.0-1 + folder: ros-noetic-depth-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-desktop-full/bld_catkin.bat b/recipes/ros-noetic-desktop-full/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-desktop-full/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-desktop-full/build_catkin.sh b/recipes/ros-noetic-desktop-full/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-desktop-full/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-desktop-full/recipe.yaml b/recipes/ros-noetic-desktop-full/recipe.yaml new file mode 100644 index 000000000..40c646daa --- /dev/null +++ b/recipes/ros-noetic-desktop-full/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-desktop-full + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/desktop_full/1.5.0-1 + folder: ros-noetic-desktop-full/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-desktop + - ros-noetic-perception + - ros-noetic-simulators + - ros-noetic-urdf-sim-tutorial + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-desktop/bld_catkin.bat b/recipes/ros-noetic-desktop/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-desktop/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-desktop/build_catkin.sh b/recipes/ros-noetic-desktop/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-desktop/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-desktop/recipe.yaml b/recipes/ros-noetic-desktop/recipe.yaml new file mode 100644 index 000000000..7e41f1dd2 --- /dev/null +++ b/recipes/ros-noetic-desktop/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-desktop + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/desktop/1.5.0-1 + folder: ros-noetic-desktop/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-common-tutorials + - ros-noetic-geometry-tutorials + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot + - ros-noetic-ros-tutorials + - ros-noetic-roslint + - ros-noetic-urdf-tutorial + - ros-noetic-visualization-tutorials + - ros-noetic-viz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-aggregator/bld_catkin.bat b/recipes/ros-noetic-diagnostic-aggregator/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-aggregator/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-aggregator/build_catkin.sh b/recipes/ros-noetic-diagnostic-aggregator/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-aggregator/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-aggregator/recipe.yaml b/recipes/ros-noetic-diagnostic-aggregator/recipe.yaml new file mode 100644 index 000000000..11ea19c2a --- /dev/null +++ b/recipes/ros-noetic-diagnostic-aggregator/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-diagnostic-aggregator + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostic_aggregator/1.11.0-1 + folder: ros-noetic-diagnostic-aggregator/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-bondpy + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-bondpy + - ros-noetic-diagnostic-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-analysis/bld_catkin.bat b/recipes/ros-noetic-diagnostic-analysis/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-analysis/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-analysis/build_catkin.sh b/recipes/ros-noetic-diagnostic-analysis/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-analysis/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-analysis/recipe.yaml b/recipes/ros-noetic-diagnostic-analysis/recipe.yaml new file mode 100644 index 000000000..60012b606 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-analysis/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-diagnostic-analysis + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostic_analysis/1.11.0-1 + folder: ros-noetic-diagnostic-analysis/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-rosbag + - ros-noetic-roslib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat b/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh b/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml b/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml new file mode 100644 index 000000000..392f068fb --- /dev/null +++ b/recipes/ros-noetic-diagnostic-common-diagnostics/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-diagnostic-common-diagnostics + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostic_common_diagnostics/1.11.0-1 + folder: ros-noetic-diagnostic-common-diagnostics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - psutil + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-tf + run: + - psutil + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-rospy + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-msgs/bld_catkin.bat b/recipes/ros-noetic-diagnostic-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-msgs/build_catkin.sh b/recipes/ros-noetic-diagnostic-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-msgs/recipe.yaml b/recipes/ros-noetic-diagnostic-msgs/recipe.yaml new file mode 100644 index 000000000..e4d4095f5 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-diagnostic-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/diagnostic_msgs/1.13.1-1 + folder: ros-noetic-diagnostic-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostic-updater/bld_catkin.bat b/recipes/ros-noetic-diagnostic-updater/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-updater/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostic-updater/build_catkin.sh b/recipes/ros-noetic-diagnostic-updater/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostic-updater/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostic-updater/patch/ros-noetic-diagnostic-updater.patch b/recipes/ros-noetic-diagnostic-updater/patch/ros-noetic-diagnostic-updater.patch new file mode 100644 index 000000000..096694f88 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-updater/patch/ros-noetic-diagnostic-updater.patch @@ -0,0 +1,15 @@ +diff --git a/include/diagnostic_updater/update_functions.h b/include/diagnostic_updater/update_functions.h +index 41e35104..59c05b94 100644 +--- a/include/diagnostic_updater/update_functions.h ++++ b/include/diagnostic_updater/update_functions.h +@@ -37,6 +37,10 @@ + #ifndef __DIAGNOSTIC_STATUS__UPDATE_FUNCTIONS_H__ + #define __DIAGNOSTIC_STATUS__UPDATE_FUNCTIONS_H__ + ++#ifdef ERROR ++#undef ERROR ++#endif ++ + #include + #include + diff --git a/recipes/ros-noetic-diagnostic-updater/recipe.yaml b/recipes/ros-noetic-diagnostic-updater/recipe.yaml new file mode 100644 index 000000000..0e19e4944 --- /dev/null +++ b/recipes/ros-noetic-diagnostic-updater/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-diagnostic-updater + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostic_updater/1.11.0-1 + folder: ros-noetic-diagnostic-updater/src/work + patches: + - patch/ros-noetic-diagnostic-updater.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diagnostics/bld_catkin.bat b/recipes/ros-noetic-diagnostics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diagnostics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diagnostics/build_catkin.sh b/recipes/ros-noetic-diagnostics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diagnostics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diagnostics/recipe.yaml b/recipes/ros-noetic-diagnostics/recipe.yaml new file mode 100644 index 000000000..86f646aac --- /dev/null +++ b/recipes/ros-noetic-diagnostics/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-diagnostics + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/diagnostics/1.11.0-1 + folder: ros-noetic-diagnostics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-analysis + - ros-noetic-diagnostic-common-diagnostics + - ros-noetic-diagnostic-updater + - ros-noetic-self-test + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-analysis + - ros-noetic-diagnostic-common-diagnostics + - ros-noetic-diagnostic-updater + - ros-noetic-self-test + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat b/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-diff-drive-controller/build_catkin.sh b/recipes/ros-noetic-diff-drive-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-diff-drive-controller/recipe.yaml b/recipes/ros-noetic-diff-drive-controller/recipe.yaml new file mode 100644 index 000000000..1ce065d2e --- /dev/null +++ b/recipes/ros-noetic-diff-drive-controller/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-diff-drive-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/diff_drive_controller/0.21.2-1 + folder: ros-noetic-diff-drive-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-rosgraph-msgs + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-tf + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat b/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh b/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml b/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml new file mode 100644 index 000000000..e37217bcc --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-draco-point-cloud-transport + version: 1.0.5 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport_plugins.git + git_rev: release/noetic/draco_point_cloud_transport/1.0.5-1 + folder: ros-noetic-draco-point-cloud-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - draco + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-generation + - ros-noetic-pluginlib + - ros-noetic-point-cloud-transport + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - draco + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-point-cloud-transport + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat b/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh b/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml b/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml new file mode 100644 index 000000000..b783bec7e --- /dev/null +++ b/recipes/ros-noetic-dynamic-reconfigure/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-dynamic-reconfigure + version: 1.7.3 +source: + git_url: https://github.com/ros-gbp/dynamic_reconfigure-release.git + git_rev: release/noetic/dynamic_reconfigure/1.7.3-1 + folder: ros-noetic-dynamic-reconfigure/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat b/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh b/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml b/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml new file mode 100644 index 000000000..5beb5f811 --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-dynamic-robot-state-publisher + version: 1.2.0 +source: + git_url: https://github.com/peci1/dynamic_robot_state_publisher-release.git + git_rev: release/noetic/dynamic_robot_state_publisher/1.2.0-1 + folder: ros-noetic-dynamic-robot-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamixel-sdk/bld_catkin.bat b/recipes/ros-noetic-dynamixel-sdk/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamixel-sdk/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamixel-sdk/build_catkin.sh b/recipes/ros-noetic-dynamixel-sdk/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamixel-sdk/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamixel-sdk/recipe.yaml b/recipes/ros-noetic-dynamixel-sdk/recipe.yaml new file mode 100644 index 000000000..3d5320362 --- /dev/null +++ b/recipes/ros-noetic-dynamixel-sdk/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-dynamixel-sdk + version: 3.7.51 +source: + git_url: https://github.com/ROBOTIS-GIT-release/DynamixelSDK-release.git + git_rev: release/noetic/dynamixel_sdk/3.7.51-4 + folder: ros-noetic-dynamixel-sdk/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rospy + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-effort-controllers/bld_catkin.bat b/recipes/ros-noetic-effort-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-effort-controllers/build_catkin.sh b/recipes/ros-noetic-effort-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-effort-controllers/recipe.yaml b/recipes/ros-noetic-effort-controllers/recipe.yaml new file mode 100644 index 000000000..5852a1588 --- /dev/null +++ b/recipes/ros-noetic-effort-controllers/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-effort-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/effort_controllers/0.21.2-1 + folder: ros-noetic-effort-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-joint-state-controller + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-urdf + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-eigen-conversions/bld_catkin.bat b/recipes/ros-noetic-eigen-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-eigen-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-eigen-conversions/build_catkin.sh b/recipes/ros-noetic-eigen-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-eigen-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-eigen-conversions/recipe.yaml b/recipes/ros-noetic-eigen-conversions/recipe.yaml new file mode 100644 index 000000000..60210c589 --- /dev/null +++ b/recipes/ros-noetic-eigen-conversions/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-eigen-conversions + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/eigen_conversions/1.13.2-1 + folder: ros-noetic-eigen-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + run: + - eigen + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-eigen-stl-containers/bld_catkin.bat b/recipes/ros-noetic-eigen-stl-containers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-eigen-stl-containers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-eigen-stl-containers/build_catkin.sh b/recipes/ros-noetic-eigen-stl-containers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-eigen-stl-containers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-eigen-stl-containers/recipe.yaml b/recipes/ros-noetic-eigen-stl-containers/recipe.yaml new file mode 100644 index 000000000..d6d23e92d --- /dev/null +++ b/recipes/ros-noetic-eigen-stl-containers/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-eigen-stl-containers + version: 0.1.8 +source: + git_url: https://github.com/ros-gbp/eigen_stl_containers-release.git + git_rev: release/noetic/eigen_stl_containers/0.1.8-1 + folder: ros-noetic-eigen-stl-containers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-electronic-io-msgs/bld_catkin.bat b/recipes/ros-noetic-electronic-io-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-electronic-io-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-electronic-io-msgs/build_catkin.sh b/recipes/ros-noetic-electronic-io-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-electronic-io-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-electronic-io-msgs/recipe.yaml b/recipes/ros-noetic-electronic-io-msgs/recipe.yaml new file mode 100644 index 000000000..b0038ddd6 --- /dev/null +++ b/recipes/ros-noetic-electronic-io-msgs/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-electronic-io-msgs + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/electronic-io.git + git_rev: release/noetic/electronic_io_msgs/1.0.3-1 + folder: ros-noetic-electronic-io-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roslint + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-electronic-io/bld_catkin.bat b/recipes/ros-noetic-electronic-io/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-electronic-io/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-electronic-io/build_catkin.sh b/recipes/ros-noetic-electronic-io/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-electronic-io/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-electronic-io/recipe.yaml b/recipes/ros-noetic-electronic-io/recipe.yaml new file mode 100644 index 000000000..8cdf2f8c4 --- /dev/null +++ b/recipes/ros-noetic-electronic-io/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-electronic-io + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/electronic-io.git + git_rev: release/noetic/electronic_io/1.0.3-1 + folder: ros-noetic-electronic-io/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-msgs + - ros-noetic-electronic-io-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-executive-smach/bld_catkin.bat b/recipes/ros-noetic-executive-smach/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-executive-smach/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-executive-smach/build_catkin.sh b/recipes/ros-noetic-executive-smach/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-executive-smach/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-executive-smach/recipe.yaml b/recipes/ros-noetic-executive-smach/recipe.yaml new file mode 100644 index 000000000..f2d1cfd44 --- /dev/null +++ b/recipes/ros-noetic-executive-smach/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-executive-smach + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/executive_smach/2.5.2-1 + folder: ros-noetic-executive-smach/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-smach + - ros-noetic-smach-msgs + - ros-noetic-smach-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-fake-localization/bld_catkin.bat b/recipes/ros-noetic-fake-localization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-fake-localization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-fake-localization/build_catkin.sh b/recipes/ros-noetic-fake-localization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-fake-localization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-fake-localization/recipe.yaml b/recipes/ros-noetic-fake-localization/recipe.yaml new file mode 100644 index 000000000..c5e885d0d --- /dev/null +++ b/recipes/ros-noetic-fake-localization/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-fake-localization + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/fake_localization/1.17.3-1 + folder: ros-noetic-fake-localization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-fcl/bld_catkin.bat b/recipes/ros-noetic-fcl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-fcl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-fcl/build_catkin.sh b/recipes/ros-noetic-fcl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-fcl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-fcl/patch/ros-noetic-fcl.patch b/recipes/ros-noetic-fcl/patch/ros-noetic-fcl.patch new file mode 100644 index 000000000..03c0d8fc1 --- /dev/null +++ b/recipes/ros-noetic-fcl/patch/ros-noetic-fcl.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6e5bbb8..e69df39 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -378,9 +378,9 @@ if(NOT FCL_BUILD_TESTS STREQUAL "DEFAULT") + unset(_BUILD_TESTING) + endif() + +-if(BUILD_TESTING AND NOT FCL_HIDE_ALL_SYMBOLS) +- add_subdirectory(test) +-endif() ++# if(BUILD_TESTING AND NOT FCL_HIDE_ALL_SYMBOLS) ++# add_subdirectory(test) ++# endif() + + #=============================================================================== + # API documentation using Doxygen diff --git a/recipes/ros-noetic-fcl/recipe.yaml b/recipes/ros-noetic-fcl/recipe.yaml new file mode 100644 index 000000000..e6c753ba4 --- /dev/null +++ b/recipes/ros-noetic-fcl/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-fcl + version: 0.6.1 +source: + git_url: https://github.com/ros-gbp/fcl-release.git + git_rev: release/noetic/fcl/0.6.1-3 + folder: ros-noetic-fcl/src/work + patches: + - patch/ros-noetic-fcl.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - libccd-double + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap + run: + - eigen + - libccd-double + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-filters/bld_catkin.bat b/recipes/ros-noetic-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-filters/build_catkin.sh b/recipes/ros-noetic-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-filters/patch/ros-noetic-filters.patch b/recipes/ros-noetic-filters/patch/ros-noetic-filters.patch new file mode 100644 index 000000000..bada85b5e --- /dev/null +++ b/recipes/ros-noetic-filters/patch/ros-noetic-filters.patch @@ -0,0 +1,14 @@ +diff --git a/include/filters/median.hpp b/include/filters/median.hpp +index 1043109..5b684c5 100644 +--- a/include/filters/median.hpp ++++ b/include/filters/median.hpp +@@ -40,6 +40,9 @@ + + #include "filters/realtime_circular_buffer.hpp" + ++#if __cplusplus > 199711L ++#define register // Deprecated in C++11. ++#endif // #if __cplusplus > 199711L + + /*********************************************************************/ + /* diff --git a/recipes/ros-noetic-filters/recipe.yaml b/recipes/ros-noetic-filters/recipe.yaml new file mode 100644 index 000000000..4d55ed026 --- /dev/null +++ b/recipes/ros-noetic-filters/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-filters + version: 1.9.2 +source: + git_url: https://github.com/ros-gbp/filters-release.git + git_rev: release/noetic/filters/1.9.2-1 + folder: ros-noetic-filters/src/work + patches: + - patch/ros-noetic-filters.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rostest + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat b/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh b/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml b/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml new file mode 100644 index 000000000..65910d801 --- /dev/null +++ b/recipes/ros-noetic-force-torque-sensor-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-force-torque-sensor-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/force_torque_sensor_controller/0.21.2-1 + folder: ros-noetic-force-torque-sensor-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-forward-command-controller/bld_catkin.bat b/recipes/ros-noetic-forward-command-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-forward-command-controller/build_catkin.sh b/recipes/ros-noetic-forward-command-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-forward-command-controller/recipe.yaml b/recipes/ros-noetic-forward-command-controller/recipe.yaml new file mode 100644 index 000000000..9a6791cd7 --- /dev/null +++ b/recipes/ros-noetic-forward-command-controller/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-forward-command-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/forward_command_controller/0.21.2-1 + folder: ros-noetic-forward-command-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-four-wheel-steering-msgs/bld_catkin.bat b/recipes/ros-noetic-four-wheel-steering-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-four-wheel-steering-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-four-wheel-steering-msgs/build_catkin.sh b/recipes/ros-noetic-four-wheel-steering-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-four-wheel-steering-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-four-wheel-steering-msgs/recipe.yaml b/recipes/ros-noetic-four-wheel-steering-msgs/recipe.yaml new file mode 100644 index 000000000..54ff27bd2 --- /dev/null +++ b/recipes/ros-noetic-four-wheel-steering-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-four-wheel-steering-msgs + version: 1.1.1 +source: + git_url: https://github.com/ros-drivers-gbp/four_wheel_steering_msgs-release.git + git_rev: release/noetic/four_wheel_steering_msgs/1.1.1-2 + folder: ros-noetic-four-wheel-steering-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-franka-msgs/bld_catkin.bat b/recipes/ros-noetic-franka-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-franka-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-franka-msgs/build_catkin.sh b/recipes/ros-noetic-franka-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-franka-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-franka-msgs/recipe.yaml b/recipes/ros-noetic-franka-msgs/recipe.yaml new file mode 100644 index 000000000..986e52fa2 --- /dev/null +++ b/recipes/ros-noetic-franka-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-franka-msgs + version: 0.10.1 +source: + git_url: https://github.com/frankaemika/franka_ros-release.git + git_rev: release/noetic/franka_msgs/0.10.1-1 + folder: ros-noetic-franka-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-dev/bld_catkin.bat b/recipes/ros-noetic-gazebo-dev/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-dev/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-dev/build_catkin.sh b/recipes/ros-noetic-gazebo-dev/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-dev/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-dev/recipe.yaml b/recipes/ros-noetic-gazebo-dev/recipe.yaml new file mode 100644 index 000000000..ef32d4412 --- /dev/null +++ b/recipes/ros-noetic-gazebo-dev/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-gazebo-dev + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_dev/2.9.2-1 + folder: ros-noetic-gazebo-dev/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gazebo + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - tbb + - tbb-devel + run: + - gazebo + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat b/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-msgs/build_catkin.sh b/recipes/ros-noetic-gazebo-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-msgs/recipe.yaml b/recipes/ros-noetic-gazebo-msgs/recipe.yaml new file mode 100644 index 000000000..f3e98a560 --- /dev/null +++ b/recipes/ros-noetic-gazebo-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-gazebo-msgs + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_msgs/2.9.2-1 + folder: ros-noetic-gazebo-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch new file mode 100644 index 000000000..6e08c556b --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 389e8719..7026671b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,6 +3,8 @@ project(gazebo_plugins) + + option(ENABLE_DISPLAY_TESTS "Enable the building of tests that requires a display" OFF) + ++add_compile_options(-Wall) ++ + find_package(catkin REQUIRED COMPONENTS + gazebo_dev + message_generation diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch new file mode 100644 index 000000000..c8fcde64c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch @@ -0,0 +1,13 @@ +diff --git a/gazebo_plugins/CMakeLists.txt b/gazebo_plugins/CMakeLists.txt +index 38c94d1d1..29e421a71 100644 +--- a/gazebo_plugins/CMakeLists.txt ++++ b/gazebo_plugins/CMakeLists.txt +@@ -313,7 +313,7 @@ add_library(gazebo_ros_skid_steer_drive src/gazebo_ros_skid_steer_drive.cpp) + target_link_libraries(gazebo_ros_skid_steer_drive ${catkin_LIBRARIES} ${Boost_LIBRARIES}) + + add_library(gazebo_ros_video src/gazebo_ros_video.cpp) +-target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${opencv_LIBRARIES}) ++target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${OpenCV_LIBRARIES}) + + add_library(gazebo_ros_planar_move src/gazebo_ros_planar_move.cpp) + target_link_libraries(gazebo_ros_planar_move ${catkin_LIBRARIES} ${Boost_LIBRARIES}) diff --git a/recipes/ros-noetic-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..631c96843 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/recipe.yaml @@ -0,0 +1,108 @@ +package: + name: ros-noetic-gazebo-plugins + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_plugins/2.9.2-1 + folder: ros-noetic-gazebo-plugins/src/work + patches: + - patch/ros-noetic-gazebo-plugins.patch + - patch/ros-noetic-gazebo-plugins.linux.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tbb + - tbb-devel + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros-control/recipe.yaml b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml new file mode 100644 index 000000000..798d91018 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-gazebo-ros-control + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros_control/2.9.2-1 + folder: ros-noetic-gazebo-ros-control/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-toolbox + - ros-noetic-controller-manager + - ros-noetic-gazebo-dev + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-transmission-interface + - ros-noetic-urdf + - tbb + - tbb-devel + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-control-toolbox + - ros-noetic-controller-manager + - ros-noetic-gazebo-ros + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-transmission-interface + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh b/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml b/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml new file mode 100644 index 000000000..cb24fbec7 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-pkgs/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-gazebo-ros-pkgs + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros_pkgs/2.9.2-1 + folder: ros-noetic-gazebo-ros-pkgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-plugins + - ros-noetic-gazebo-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros/build_catkin.sh b/recipes/ros-noetic-gazebo-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros/recipe.yaml b/recipes/ros-noetic-gazebo-ros/recipe.yaml new file mode 100644 index 000000000..1e96e3645 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-gazebo-ros + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros/2.9.2-1 + folder: ros-noetic-gazebo-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - tbb + - tbb-devel + - tinyxml + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gencpp/bld_catkin.bat b/recipes/ros-noetic-gencpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gencpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gencpp/build_catkin.sh b/recipes/ros-noetic-gencpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gencpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gencpp/recipe.yaml b/recipes/ros-noetic-gencpp/recipe.yaml new file mode 100644 index 000000000..ead022f6d --- /dev/null +++ b/recipes/ros-noetic-gencpp/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-gencpp + version: 0.7.0 +source: + git_url: https://github.com/ros-gbp/gencpp-release.git + git_rev: release/noetic/gencpp/0.7.0-1 + folder: ros-noetic-gencpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geneus/bld_catkin.bat b/recipes/ros-noetic-geneus/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geneus/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geneus/build_catkin.sh b/recipes/ros-noetic-geneus/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geneus/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geneus/recipe.yaml b/recipes/ros-noetic-geneus/recipe.yaml new file mode 100644 index 000000000..a6d5ee4b6 --- /dev/null +++ b/recipes/ros-noetic-geneus/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-geneus + version: 3.0.0 +source: + git_url: https://github.com/tork-a/geneus-release.git + git_rev: release/noetic/geneus/3.0.0-1 + folder: ros-noetic-geneus/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-genlisp/bld_catkin.bat b/recipes/ros-noetic-genlisp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-genlisp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-genlisp/build_catkin.sh b/recipes/ros-noetic-genlisp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-genlisp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-genlisp/recipe.yaml b/recipes/ros-noetic-genlisp/recipe.yaml new file mode 100644 index 000000000..3dc229594 --- /dev/null +++ b/recipes/ros-noetic-genlisp/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-genlisp + version: 0.4.18 +source: + git_url: https://github.com/ros-gbp/genlisp-release.git + git_rev: release/noetic/genlisp/0.4.18-1 + folder: ros-noetic-genlisp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-genmsg/bld_catkin.bat b/recipes/ros-noetic-genmsg/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-genmsg/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-genmsg/build_catkin.sh b/recipes/ros-noetic-genmsg/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-genmsg/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-genmsg/recipe.yaml b/recipes/ros-noetic-genmsg/recipe.yaml new file mode 100644 index 000000000..4ccf6a96b --- /dev/null +++ b/recipes/ros-noetic-genmsg/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-genmsg + version: 0.6.0 +source: + git_url: https://github.com/ros-gbp/genmsg-release.git + git_rev: release/noetic/genmsg/0.6.0-1 + folder: ros-noetic-genmsg/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - empy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gennodejs/bld_catkin.bat b/recipes/ros-noetic-gennodejs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gennodejs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gennodejs/build_catkin.sh b/recipes/ros-noetic-gennodejs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gennodejs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gennodejs/recipe.yaml b/recipes/ros-noetic-gennodejs/recipe.yaml new file mode 100644 index 000000000..b473e49d1 --- /dev/null +++ b/recipes/ros-noetic-gennodejs/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-gennodejs + version: 2.0.2 +source: + git_url: https://github.com/sloretz/gennodejs-release.git + git_rev: release/noetic/gennodejs/2.0.2-1 + folder: ros-noetic-gennodejs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-genpy/bld_catkin.bat b/recipes/ros-noetic-genpy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-genpy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-genpy/build_catkin.sh b/recipes/ros-noetic-genpy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-genpy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-genpy/recipe.yaml b/recipes/ros-noetic-genpy/recipe.yaml new file mode 100644 index 000000000..e07eb620a --- /dev/null +++ b/recipes/ros-noetic-genpy/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-genpy + version: 0.6.15 +source: + git_url: https://github.com/ros-gbp/genpy-release.git + git_rev: release/noetic/genpy/0.6.15-1 + folder: ros-noetic-genpy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - setuptools + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geographic-msgs/bld_catkin.bat b/recipes/ros-noetic-geographic-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geographic-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geographic-msgs/build_catkin.sh b/recipes/ros-noetic-geographic-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geographic-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geographic-msgs/recipe.yaml b/recipes/ros-noetic-geographic-msgs/recipe.yaml new file mode 100644 index 000000000..5b4443176 --- /dev/null +++ b/recipes/ros-noetic-geographic-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-geographic-msgs + version: 0.5.6 +source: + git_url: https://github.com/ros-geographic-info/geographic_info-release.git + git_rev: release/noetic/geographic_msgs/0.5.6-1 + folder: ros-noetic-geographic-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - ros-noetic-uuid-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - ros-noetic-uuid-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometric-shapes/bld_catkin.bat b/recipes/ros-noetic-geometric-shapes/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometric-shapes/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometric-shapes/build_catkin.sh b/recipes/ros-noetic-geometric-shapes/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometric-shapes/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometric-shapes/patch/ros-noetic-geometric-shapes.patch b/recipes/ros-noetic-geometric-shapes/patch/ros-noetic-geometric-shapes.patch new file mode 100644 index 000000000..2ae82f06c --- /dev/null +++ b/recipes/ros-noetic-geometric-shapes/patch/ros-noetic-geometric-shapes.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ccc9864..0134765 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ endif() + find_library(ASSIMP_ABS_LIBRARIES NAMES ${ASSIMP_LIBRARIES} assimp HINTS ${ASSIMP_LIBRARY_DIRS} ${ASSIMP_PC_LIBRARY_DIRS}) + set(ASSIMP_LIBRARIES "${ASSIMP_ABS_LIBRARIES}") + +-find_package(Boost REQUIRED system filesystem) ++find_package(Boost REQUIRED system filesystem date_time) + + find_package(console_bridge REQUIRED) + diff --git a/recipes/ros-noetic-geometric-shapes/recipe.yaml b/recipes/ros-noetic-geometric-shapes/recipe.yaml new file mode 100644 index 000000000..cc25543d3 --- /dev/null +++ b/recipes/ros-noetic-geometric-shapes/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-geometric-shapes + version: 0.7.5 +source: + git_url: https://github.com/ros-gbp/geometric_shapes-release.git + git_rev: release/noetic/geometric_shapes/0.7.5-1 + folder: ros-noetic-geometric-shapes/src/work + patches: + - patch/ros-noetic-geometric-shapes.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - assimp + - boost + - console_bridge + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - qhull + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-octomap + - ros-noetic-random-numbers + - ros-noetic-resource-retriever + - ros-noetic-rosunit + - ros-noetic-shape-msgs + - ros-noetic-visualization-msgs + run: + - assimp + - boost + - console_bridge + - eigen + - python + - qhull + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-octomap + - ros-noetic-random-numbers + - ros-noetic-resource-retriever + - ros-noetic-shape-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry-msgs/bld_catkin.bat b/recipes/ros-noetic-geometry-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry-msgs/build_catkin.sh b/recipes/ros-noetic-geometry-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry-msgs/recipe.yaml b/recipes/ros-noetic-geometry-msgs/recipe.yaml new file mode 100644 index 000000000..b43d7c021 --- /dev/null +++ b/recipes/ros-noetic-geometry-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-geometry-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/geometry_msgs/1.13.1-1 + folder: ros-noetic-geometry-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat b/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry-tutorials/build_catkin.sh b/recipes/ros-noetic-geometry-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry-tutorials/recipe.yaml b/recipes/ros-noetic-geometry-tutorials/recipe.yaml new file mode 100644 index 000000000..f8021a9e7 --- /dev/null +++ b/recipes/ros-noetic-geometry-tutorials/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-geometry-tutorials + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/geometry_tutorials/0.2.3-1 + folder: ros-noetic-geometry-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-turtle-tf + - ros-noetic-turtle-tf2 + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-turtle-tf + - ros-noetic-turtle-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry/bld_catkin.bat b/recipes/ros-noetic-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry/build_catkin.sh b/recipes/ros-noetic-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry/recipe.yaml b/recipes/ros-noetic-geometry/recipe.yaml new file mode 100644 index 000000000..6475b95ea --- /dev/null +++ b/recipes/ros-noetic-geometry/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-geometry + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/geometry/1.13.2-1 + folder: ros-noetic-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-eigen-conversions + - ros-noetic-kdl-conversions + - ros-noetic-tf + - ros-noetic-tf-conversions + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-eigen-conversions + - ros-noetic-kdl-conversions + - ros-noetic-tf + - ros-noetic-tf-conversions + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-geometry2/bld_catkin.bat b/recipes/ros-noetic-geometry2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-geometry2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-geometry2/build_catkin.sh b/recipes/ros-noetic-geometry2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-geometry2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-geometry2/recipe.yaml b/recipes/ros-noetic-geometry2/recipe.yaml new file mode 100644 index 000000000..ca05d0a78 --- /dev/null +++ b/recipes/ros-noetic-geometry2/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-geometry2 + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/geometry2/0.7.7-1 + folder: ros-noetic-geometry2/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-tf2 + - ros-noetic-tf2-bullet + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-tf2-tools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-bullet + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-tf2-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gl-dependency/bld_catkin.bat b/recipes/ros-noetic-gl-dependency/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gl-dependency/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gl-dependency/build_catkin.sh b/recipes/ros-noetic-gl-dependency/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gl-dependency/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gl-dependency/recipe.yaml b/recipes/ros-noetic-gl-dependency/recipe.yaml new file mode 100644 index 000000000..78b8325af --- /dev/null +++ b/recipes/ros-noetic-gl-dependency/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-gl-dependency + version: 1.1.2 +source: + git_url: https://github.com/ros-gbp/gl_dependency-release.git + git_rev: release/noetic/gl_dependency/1.1.2-1 + folder: ros-noetic-gl-dependency/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pyqt + - pyqt-builder + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gmapping/bld_catkin.bat b/recipes/ros-noetic-gmapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gmapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gmapping/build_catkin.sh b/recipes/ros-noetic-gmapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gmapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch new file mode 100644 index 000000000..fc1a6294f --- /dev/null +++ b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 04f3c8d..c4ea9c2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,7 +3,7 @@ project(gmapping) + + find_package(catkin REQUIRED nav_msgs nodelet openslam_gmapping roscpp tf rosbag_storage) + +-find_package(Boost REQUIRED) ++find_package(Boost COMPONENTS thread system program_options REQUIRED) + + include_directories(${Boost_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) + diff --git a/recipes/ros-noetic-gmapping/recipe.yaml b/recipes/ros-noetic-gmapping/recipe.yaml new file mode 100644 index 000000000..38a848875 --- /dev/null +++ b/recipes/ros-noetic-gmapping/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-gmapping + version: 1.4.2 +source: + git_url: https://github.com/ros-gbp/slam_gmapping-release.git + git_rev: release/noetic/gmapping/1.4.2-1 + folder: ros-noetic-gmapping/src/work + patches: + - patch/ros-noetic-gmapping.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gps-common/bld_catkin.bat b/recipes/ros-noetic-gps-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gps-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gps-common/build_catkin.sh b/recipes/ros-noetic-gps-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gps-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gps-common/recipe.yaml b/recipes/ros-noetic-gps-common/recipe.yaml new file mode 100644 index 000000000..30b72e3e9 --- /dev/null +++ b/recipes/ros-noetic-gps-common/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-gps-common + version: 0.3.4 +source: + git_url: https://github.com/swri-robotics-gbp/gps_umd-release.git + git_rev: release/noetic/gps_common/0.3.4-1 + folder: ros-noetic-gps-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-graph-msgs/bld_catkin.bat b/recipes/ros-noetic-graph-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-graph-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-graph-msgs/build_catkin.sh b/recipes/ros-noetic-graph-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-graph-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-graph-msgs/recipe.yaml b/recipes/ros-noetic-graph-msgs/recipe.yaml new file mode 100644 index 000000000..b7dc1d39e --- /dev/null +++ b/recipes/ros-noetic-graph-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-graph-msgs + version: 0.1.0 +source: + git_url: https://github.com/PickNikRobotics/graph_msgs-release.git + git_rev: release/noetic/graph_msgs/0.1.0-2 + folder: ros-noetic-graph-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat b/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gripper-action-controller/build_catkin.sh b/recipes/ros-noetic-gripper-action-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gripper-action-controller/recipe.yaml b/recipes/ros-noetic-gripper-action-controller/recipe.yaml new file mode 100644 index 000000000..e538079b1 --- /dev/null +++ b/recipes/ros-noetic-gripper-action-controller/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-gripper-action-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/gripper_action_controller/0.21.2-1 + folder: ros-noetic-gripper-action-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hardware-interface/bld_catkin.bat b/recipes/ros-noetic-hardware-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hardware-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hardware-interface/build_catkin.sh b/recipes/ros-noetic-hardware-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hardware-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hardware-interface/patch/ros-noetic-hardware-interface.patch b/recipes/ros-noetic-hardware-interface/patch/ros-noetic-hardware-interface.patch new file mode 100644 index 000000000..adc2ddd65 --- /dev/null +++ b/recipes/ros-noetic-hardware-interface/patch/ros-noetic-hardware-interface.patch @@ -0,0 +1,15 @@ +diff --git a/include/hardware_interface/robot_hw.h b/include/hardware_interface/robot_hw.h +index d9f5b9ab..8e27c313 100644 +--- a/include/hardware_interface/robot_hw.h ++++ b/include/hardware_interface/robot_hw.h +@@ -39,6 +39,10 @@ + #include + #include + ++#ifdef ERROR ++#undef ERROR ++#endif ++ + namespace hardware_interface + { + diff --git a/recipes/ros-noetic-hardware-interface/recipe.yaml b/recipes/ros-noetic-hardware-interface/recipe.yaml new file mode 100644 index 000000000..3e20c1531 --- /dev/null +++ b/recipes/ros-noetic-hardware-interface/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-hardware-interface + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/hardware_interface/0.20.0-1 + folder: ros-noetic-hardware-interface/src/work + patches: + - patch/ros-noetic-hardware-interface.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..8a79107dd --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-hector-gazebo-plugins + version: 0.5.4 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_gazebo-release.git + git_rev: release/noetic/hector_gazebo_plugins/0.5.4-1 + folder: ros-noetic-hector-gazebo-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + run: + - gazebo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-ros + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-map-tools/bld_catkin.bat b/recipes/ros-noetic-hector-map-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-map-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-map-tools/build_catkin.sh b/recipes/ros-noetic-hector-map-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-map-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-map-tools/recipe.yaml b/recipes/ros-noetic-hector-map-tools/recipe.yaml new file mode 100644 index 000000000..d17e30a61 --- /dev/null +++ b/recipes/ros-noetic-hector-map-tools/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-hector-map-tools + version: 0.5.2 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_slam-release.git + git_rev: release/noetic/hector_map_tools/0.5.2-4 + folder: ros-noetic-hector-map-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nav-msgs + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nav-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-nav-msgs/bld_catkin.bat b/recipes/ros-noetic-hector-nav-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-nav-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-nav-msgs/build_catkin.sh b/recipes/ros-noetic-hector-nav-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-nav-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-nav-msgs/recipe.yaml b/recipes/ros-noetic-hector-nav-msgs/recipe.yaml new file mode 100644 index 000000000..73f576d9c --- /dev/null +++ b/recipes/ros-noetic-hector-nav-msgs/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-hector-nav-msgs + version: 0.5.2 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_slam-release.git + git_rev: release/noetic/hector_nav_msgs/0.5.2-4 + folder: ros-noetic-hector-nav-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat b/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh b/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-trajectory-server/recipe.yaml b/recipes/ros-noetic-hector-trajectory-server/recipe.yaml new file mode 100644 index 000000000..93607360a --- /dev/null +++ b/recipes/ros-noetic-hector-trajectory-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-hector-trajectory-server + version: 0.5.2 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_slam-release.git + git_rev: release/noetic/hector_trajectory_server/0.5.2-4 + folder: ros-noetic-hector-trajectory-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-hector-map-tools + - ros-noetic-hector-nav-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hector-map-tools + - ros-noetic-hector-nav-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat b/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh b/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml b/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml new file mode 100644 index 000000000..f5276e78e --- /dev/null +++ b/recipes/ros-noetic-hls-lfcd-lds-driver/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-hls-lfcd-lds-driver + version: 1.1.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/hls-lfcd-lds-driver-release.git + git_rev: release/noetic/hls_lfcd_lds_driver/1.1.2-1 + folder: ros-noetic-hls-lfcd-lds-driver/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-common/bld_catkin.bat b/recipes/ros-noetic-image-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-common/build_catkin.sh b/recipes/ros-noetic-image-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-common/recipe.yaml b/recipes/ros-noetic-image-common/recipe.yaml new file mode 100644 index 000000000..dd18b3144 --- /dev/null +++ b/recipes/ros-noetic-image-common/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-image-common + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/image_common/1.12.0-1 + folder: ros-noetic-image-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-polled-camera + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-camera-info-manager + - ros-noetic-image-transport + - ros-noetic-polled-camera + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-geometry/bld_catkin.bat b/recipes/ros-noetic-image-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-geometry/build_catkin.sh b/recipes/ros-noetic-image-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-geometry/recipe.yaml b/recipes/ros-noetic-image-geometry/recipe.yaml new file mode 100644 index 000000000..180162d8e --- /dev/null +++ b/recipes/ros-noetic-image-geometry/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-geometry + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/image_geometry/1.16.2-1 + folder: ros-noetic-image-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-sensor-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-image-pipeline/bld_catkin.bat b/recipes/ros-noetic-image-pipeline/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-pipeline/build_catkin.sh b/recipes/ros-noetic-image-pipeline/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-pipeline/recipe.yaml b/recipes/ros-noetic-image-pipeline/recipe.yaml new file mode 100644 index 000000000..4fe206327 --- /dev/null +++ b/recipes/ros-noetic-image-pipeline/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-image-pipeline + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_pipeline/1.17.0-1 + folder: ros-noetic-image-pipeline/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration + - ros-noetic-catkin + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-image-publisher + - ros-noetic-image-rotate + - ros-noetic-image-view + - ros-noetic-stereo-image-proc + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-image-publisher + - ros-noetic-image-rotate + - ros-noetic-image-view + - ros-noetic-stereo-image-proc + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-proc/bld_catkin.bat b/recipes/ros-noetic-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-proc/build_catkin.sh b/recipes/ros-noetic-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-proc/recipe.yaml b/recipes/ros-noetic-image-proc/recipe.yaml new file mode 100644 index 000000000..857ebe3a2 --- /dev/null +++ b/recipes/ros-noetic-image-proc/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_proc/1.17.0-1 + folder: ros-noetic-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-publisher/bld_catkin.bat b/recipes/ros-noetic-image-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-publisher/build_catkin.sh b/recipes/ros-noetic-image-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-publisher/recipe.yaml b/recipes/ros-noetic-image-publisher/recipe.yaml new file mode 100644 index 000000000..eb0bfd5d4 --- /dev/null +++ b/recipes/ros-noetic-image-publisher/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-image-publisher + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_publisher/1.17.0-1 + folder: ros-noetic-image-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-rotate/bld_catkin.bat b/recipes/ros-noetic-image-rotate/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-rotate/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-rotate/build_catkin.sh b/recipes/ros-noetic-image-rotate/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-rotate/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-rotate/recipe.yaml b/recipes/ros-noetic-image-rotate/recipe.yaml new file mode 100644 index 000000000..1f155ffa6 --- /dev/null +++ b/recipes/ros-noetic-image-rotate/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-image-rotate + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_rotate/1.17.0-1 + folder: ros-noetic-image-rotate/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat b/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport-codecs/build_catkin.sh b/recipes/ros-noetic-image-transport-codecs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport-codecs/recipe.yaml b/recipes/ros-noetic-image-transport-codecs/recipe.yaml new file mode 100644 index 000000000..24e58b46c --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-image-transport-codecs + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/image_transport_codecs/2.3.8-1 + folder: ros-noetic-image-transport-codecs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libjpeg-turbo + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-theora-image-transport + - ros-noetic-topic-tools + run: + - libjpeg-turbo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-class-loader + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-pluginlib + - ros-noetic-sensor-msgs + - ros-noetic-theora-image-transport + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport-plugins/build_catkin.sh b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport-plugins/recipe.yaml b/recipes/ros-noetic-image-transport-plugins/recipe.yaml new file mode 100644 index 000000000..ff8c1ce28 --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-image-transport-plugins + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/image_transport_plugins/1.14.0-1 + folder: ros-noetic-image-transport-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-theora-image-transport + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-theora-image-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport/bld_catkin.bat b/recipes/ros-noetic-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport/build_catkin.sh b/recipes/ros-noetic-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport/recipe.yaml b/recipes/ros-noetic-image-transport/recipe.yaml new file mode 100644 index 000000000..f3fb0c8c8 --- /dev/null +++ b/recipes/ros-noetic-image-transport/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-image-transport + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/image_transport/1.12.0-1 + folder: ros-noetic-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-view/bld_catkin.bat b/recipes/ros-noetic-image-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-view/build_catkin.sh b/recipes/ros-noetic-image-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-view/recipe.yaml b/recipes/ros-noetic-image-view/recipe.yaml new file mode 100644 index 000000000..a27ef59f0 --- /dev/null +++ b/recipes/ros-noetic-image-view/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-image-view + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/image_view/1.17.0-1 + folder: ros-noetic-image-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nodelet + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-calibration-parsers + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat b/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh b/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-complementary-filter/recipe.yaml b/recipes/ros-noetic-imu-complementary-filter/recipe.yaml new file mode 100644 index 000000000..a8fdf4a13 --- /dev/null +++ b/recipes/ros-noetic-imu-complementary-filter/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-imu-complementary-filter + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_complementary_filter/1.2.6-1 + folder: ros-noetic-imu-complementary-filter/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat b/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh b/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml b/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml new file mode 100644 index 000000000..00f7df6b1 --- /dev/null +++ b/recipes/ros-noetic-imu-filter-madgwick/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-imu-filter-madgwick + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_filter_madgwick/1.2.6-1 + folder: ros-noetic-imu-filter-madgwick/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat b/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh b/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-sensor-controller/recipe.yaml b/recipes/ros-noetic-imu-sensor-controller/recipe.yaml new file mode 100644 index 000000000..c742c03a8 --- /dev/null +++ b/recipes/ros-noetic-imu-sensor-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-imu-sensor-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/imu_sensor_controller/0.21.2-1 + folder: ros-noetic-imu-sensor-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-tools/bld_catkin.bat b/recipes/ros-noetic-imu-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-tools/build_catkin.sh b/recipes/ros-noetic-imu-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-tools/recipe.yaml b/recipes/ros-noetic-imu-tools/recipe.yaml new file mode 100644 index 000000000..39b57167d --- /dev/null +++ b/recipes/ros-noetic-imu-tools/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-imu-tools + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/imu_tools/1.2.6-1 + folder: ros-noetic-imu-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-transformer/bld_catkin.bat b/recipes/ros-noetic-imu-transformer/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-transformer/build_catkin.sh b/recipes/ros-noetic-imu-transformer/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-transformer/recipe.yaml b/recipes/ros-noetic-imu-transformer/recipe.yaml new file mode 100644 index 000000000..fc6eac33e --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-imu-transformer + version: 0.3.1 +source: + git_url: https://github.com/ros-gbp/imu_pipeline-release.git + git_rev: release/noetic/imu_transformer/0.3.1-1 + folder: ros-noetic-imu-transformer/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch new file mode 100644 index 000000000..31758ea76 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch @@ -0,0 +1,45 @@ +diff --git a/scripts/menu.py b/scripts/menu.py +index e2d1854..dc93108 100755 +--- a/scripts/menu.py ++++ b/scripts/menu.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -68,7 +70,7 @@ def modeCb(feedback): + + rospy.loginfo("Switching to menu entry #" + str(h_mode_last)) + menu_handler.reApply( server ) +- print "DONE" ++ print("DONE") + server.applyChanges() + + def makeBox( msg ): +diff --git a/scripts/simple_marker.py b/scripts/simple_marker.py +index fe44c12..0d13c9a 100755 +--- a/scripts/simple_marker.py ++++ b/scripts/simple_marker.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -36,7 +38,7 @@ from visualization_msgs.msg import * + + def processFeedback(feedback): + p = feedback.pose.position +- print feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z) ++ print(feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z)) + + if __name__=="__main__": + rospy.init_node("simple_marker") + diff --git a/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml b/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml new file mode 100644 index 000000000..d5ba8c0ff --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-interactive-marker-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/interactive_marker_tutorials/0.11.0-1 + folder: ros-noetic-interactive-marker-tutorials/src/work + patches: + - patch/ros-noetic-interactive-marker-tutorials.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-marker-twist-server/bld_catkin.bat b/recipes/ros-noetic-interactive-marker-twist-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-twist-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-marker-twist-server/build_catkin.sh b/recipes/ros-noetic-interactive-marker-twist-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-twist-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-marker-twist-server/recipe.yaml b/recipes/ros-noetic-interactive-marker-twist-server/recipe.yaml new file mode 100644 index 000000000..ba26cd13c --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-twist-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-interactive-marker-twist-server + version: 1.2.2 +source: + git_url: https://github.com/ros-gbp/interactive_marker_twist_server-release.git + git_rev: release/noetic/interactive_marker_twist_server/1.2.2-1 + folder: ros-noetic-interactive-marker-twist-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-tf + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-markers/bld_catkin.bat b/recipes/ros-noetic-interactive-markers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-markers/build_catkin.sh b/recipes/ros-noetic-interactive-markers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-markers/recipe.yaml b/recipes/ros-noetic-interactive-markers/recipe.yaml new file mode 100644 index 000000000..33ad82ba6 --- /dev/null +++ b/recipes/ros-noetic-interactive-markers/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-interactive-markers + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/interactive_markers-release.git + git_rev: release/noetic/interactive_markers/1.12.0-1 + folder: ros-noetic-interactive-markers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-limits-interface/bld_catkin.bat b/recipes/ros-noetic-joint-limits-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-limits-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-limits-interface/build_catkin.sh b/recipes/ros-noetic-joint-limits-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-limits-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-limits-interface/recipe.yaml b/recipes/ros-noetic-joint-limits-interface/recipe.yaml new file mode 100644 index 000000000..e290eca12 --- /dev/null +++ b/recipes/ros-noetic-joint-limits-interface/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-joint-limits-interface + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/joint_limits_interface/0.20.0-1 + folder: ros-noetic-joint-limits-interface/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-hardware-interface + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hardware-interface + - ros-noetic-roscpp + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-controller/bld_catkin.bat b/recipes/ros-noetic-joint-state-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-controller/build_catkin.sh b/recipes/ros-noetic-joint-state-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-controller/recipe.yaml b/recipes/ros-noetic-joint-state-controller/recipe.yaml new file mode 100644 index 000000000..afd954633 --- /dev/null +++ b/recipes/ros-noetic-joint-state-controller/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-joint-state-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/joint_state_controller/0.21.2-1 + folder: ros-noetic-joint-state-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat b/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh b/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch b/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch new file mode 100644 index 000000000..f6baef1b2 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/patch/ros-noetic-joint-state-publisher-gui.patch @@ -0,0 +1,22 @@ +diff --git a/src/joint_state_publisher_gui/__init__.py b/src/joint_state_publisher_gui/__init__.py +index b4aa139..71b2ca1 100644 +--- a/src/joint_state_publisher_gui/__init__.py ++++ b/src/joint_state_publisher_gui/__init__.py +@@ -100,7 +100,7 @@ class JointStatePublisherGui(QWidget): + + slider.setFont(font) + slider.setRange(0, RANGE) +- slider.setValue(RANGE/2) ++ slider.setValue(int(RANGE/2)) + + joint_layout.addWidget(slider) + +@@ -222,7 +222,7 @@ class JointStatePublisherGui(QWidget): + self.update_sliders() + + def valueToSlider(self, value, joint): +- return (value - joint['min']) * float(RANGE) / (joint['max'] - joint['min']) ++ return int((value - joint['min']) * float(RANGE) / (joint['max'] - joint['min'])) + + def sliderToValue(self, slider, joint): + pctvalue = slider / float(RANGE) diff --git a/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml b/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml new file mode 100644 index 000000000..e5534defd --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher-gui/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-joint-state-publisher-gui + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joint_state_publisher-release.git + git_rev: release/noetic/joint_state_publisher_gui/1.15.1-1 + folder: ros-noetic-joint-state-publisher-gui/src/work + patches: + - patch/ros-noetic-joint-state-publisher-gui.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat b/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-state-publisher/build_catkin.sh b/recipes/ros-noetic-joint-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-state-publisher/recipe.yaml b/recipes/ros-noetic-joint-state-publisher/recipe.yaml new file mode 100644 index 000000000..e254d2cfd --- /dev/null +++ b/recipes/ros-noetic-joint-state-publisher/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-joint-state-publisher + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joint_state_publisher-release.git + git_rev: release/noetic/joint_state_publisher/1.15.1-1 + folder: ros-noetic-joint-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat b/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh b/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml b/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml new file mode 100644 index 000000000..0d0fb4d1c --- /dev/null +++ b/recipes/ros-noetic-joint-trajectory-controller/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-joint-trajectory-controller + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/joint_trajectory_controller/0.21.2-1 + folder: ros-noetic-joint-trajectory-controller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-code-coverage + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joy/bld_catkin.bat b/recipes/ros-noetic-joy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joy/build_catkin.sh b/recipes/ros-noetic-joy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joy/recipe.yaml b/recipes/ros-noetic-joy/recipe.yaml new file mode 100644 index 000000000..bdd728485 --- /dev/null +++ b/recipes/ros-noetic-joy/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-joy + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joystick_drivers-release.git + git_rev: release/noetic/joy/1.15.1-1 + folder: ros-noetic-joy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-kdl-conversions/bld_catkin.bat b/recipes/ros-noetic-kdl-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-kdl-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-kdl-conversions/build_catkin.sh b/recipes/ros-noetic-kdl-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-kdl-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-kdl-conversions/recipe.yaml b/recipes/ros-noetic-kdl-conversions/recipe.yaml new file mode 100644 index 000000000..0cf9cbe5d --- /dev/null +++ b/recipes/ros-noetic-kdl-conversions/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-kdl-conversions + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/kdl_conversions/1.13.2-1 + folder: ros-noetic-kdl-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-kdl-parser-py/bld_catkin.bat b/recipes/ros-noetic-kdl-parser-py/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-kdl-parser-py/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-kdl-parser-py/build_catkin.sh b/recipes/ros-noetic-kdl-parser-py/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-kdl-parser-py/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-kdl-parser-py/recipe.yaml b/recipes/ros-noetic-kdl-parser-py/recipe.yaml new file mode 100644 index 000000000..d42df3650 --- /dev/null +++ b/recipes/ros-noetic-kdl-parser-py/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-kdl-parser-py + version: 1.14.2 +source: + git_url: https://github.com/ros-gbp/kdl_parser-release.git + git_rev: release/noetic/kdl_parser_py/1.14.2-1 + folder: ros-noetic-kdl-parser-py/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + - ros-noetic-urdfdom-py + - setuptools + run: + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdfdom-py + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-kdl-parser/bld_catkin.bat b/recipes/ros-noetic-kdl-parser/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-kdl-parser/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-kdl-parser/build_catkin.sh b/recipes/ros-noetic-kdl-parser/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-kdl-parser/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-kdl-parser/recipe.yaml b/recipes/ros-noetic-kdl-parser/recipe.yaml new file mode 100644 index 000000000..6569c0083 --- /dev/null +++ b/recipes/ros-noetic-kdl-parser/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-kdl-parser + version: 1.14.2 +source: + git_url: https://github.com/ros-gbp/kdl_parser-release.git + git_rev: release/noetic/kdl_parser/1.14.2-1 + folder: ros-noetic-kdl-parser/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-urdf + - tinyxml + - tinyxml2 + - urdfdom_headers + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-urdf + - tinyxml + - tinyxml2 + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-assembler/bld_catkin.bat b/recipes/ros-noetic-laser-assembler/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-assembler/build_catkin.sh b/recipes/ros-noetic-laser-assembler/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-assembler/recipe.yaml b/recipes/ros-noetic-laser-assembler/recipe.yaml new file mode 100644 index 000000000..ab1492673 --- /dev/null +++ b/recipes/ros-noetic-laser-assembler/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-laser-assembler + version: 1.7.8 +source: + git_url: https://github.com/ros-gbp/laser_assembler-release.git + git_rev: release/noetic/laser_assembler/1.7.8-1 + folder: ros-noetic-laser-assembler/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-filters/bld_catkin.bat b/recipes/ros-noetic-laser-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-filters/build_catkin.sh b/recipes/ros-noetic-laser-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-filters/recipe.yaml b/recipes/ros-noetic-laser-filters/recipe.yaml new file mode 100644 index 000000000..ffddd8aa2 --- /dev/null +++ b/recipes/ros-noetic-laser-filters/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-laser-filters + version: 1.9.0 +source: + git_url: https://github.com/ros-gbp/laser_filters-release.git + git_rev: release/noetic/laser_filters/1.9.0-1 + folder: ros-noetic-laser-filters/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-geometry/bld_catkin.bat b/recipes/ros-noetic-laser-geometry/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-geometry/build_catkin.sh b/recipes/ros-noetic-laser-geometry/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-geometry/recipe.yaml b/recipes/ros-noetic-laser-geometry/recipe.yaml new file mode 100644 index 000000000..70f4a62d8 --- /dev/null +++ b/recipes/ros-noetic-laser-geometry/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-laser-geometry + version: 1.6.7 +source: + git_url: https://github.com/ros-gbp/laser_geometry-release.git + git_rev: release/noetic/laser_geometry/1.6.7-1 + folder: ros-noetic-laser-geometry/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + run: + - boost + - eigen + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-laser-pipeline/bld_catkin.bat b/recipes/ros-noetic-laser-pipeline/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-laser-pipeline/build_catkin.sh b/recipes/ros-noetic-laser-pipeline/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-laser-pipeline/recipe.yaml b/recipes/ros-noetic-laser-pipeline/recipe.yaml new file mode 100644 index 000000000..23ae95ca5 --- /dev/null +++ b/recipes/ros-noetic-laser-pipeline/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-laser-pipeline + version: 1.6.4 +source: + git_url: https://github.com/ros-gbp/laser_pipeline-release.git + git_rev: release/noetic/laser_pipeline/1.6.4-1 + folder: ros-noetic-laser-pipeline/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-laser-assembler + - ros-noetic-laser-filters + - ros-noetic-laser-geometry + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-laser-assembler + - ros-noetic-laser-filters + - ros-noetic-laser-geometry + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-libg2o/bld_catkin.bat b/recipes/ros-noetic-libg2o/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-libg2o/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-libg2o/build_catkin.sh b/recipes/ros-noetic-libg2o/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-libg2o/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-libg2o/patch/ros-noetic-libg2o.patch b/recipes/ros-noetic-libg2o/patch/ros-noetic-libg2o.patch new file mode 100644 index 000000000..80074328a --- /dev/null +++ b/recipes/ros-noetic-libg2o/patch/ros-noetic-libg2o.patch @@ -0,0 +1,44 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 88d0adf..3ce0d9c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -154,22 +154,23 @@ endif(G2O_USE_OPENMP) + + # OpenGL is used in the draw actions for the different types, as well + # as for creating the GUI itself +-set(OpenGL_GL_PREFERENCE "GLVND") +-find_package(OpenGL) +- +-# If OpenGL was found, use the import target if available. If not, use old-style includes +-set(G2O_USE_OPENGL ON CACHE BOOL "Build g2o with OpenGL support for visualization") +-if (OPENGL_FOUND AND G2O_USE_OPENGL) +- if (TARGET OpenGL::GL) +- set(G2O_OPENGL_TARGET "OpenGL::GL;OpenGL::GLU") +- else() +- set(G2O_OPENGL_TARGET "${OPENGL_LIBRARIES}") +- include_directories(${OPENGL_INCLUDE_DIR}) +- endif() +- set (G2O_HAVE_OPENGL 1) +- message(STATUS "Compiling with OpenGL support") +- #message(WARNING G2O_OPENGL_TARGET=${G2O_OPENGL_TARGET}) +-endif() ++# set(OpenGL_GL_PREFERENCE "GLVND") ++# find_package(OpenGL) ++ ++# # If OpenGL was found, use the import target if available. If not, use old-style includes ++# set(G2O_USE_OPENGL ON CACHE BOOL "Build g2o with OpenGL support for visualization") ++# if (OPENGL_FOUND AND G2O_USE_OPENGL) ++# if (TARGET OpenGL::GL) ++# set(G2O_OPENGL_TARGET "OpenGL::GL;OpenGL::GLU") ++# else() ++# set(G2O_OPENGL_TARGET "${OPENGL_LIBRARIES}") ++# include_directories(${OPENGL_INCLUDE_DIR}) ++# endif() ++# set (G2O_HAVE_OPENGL 1) ++# message(STATUS "Compiling with OpenGL support") ++# #message(WARNING G2O_OPENGL_TARGET=${G2O_OPENGL_TARGET}) ++# endif() ++set (G2O_HAVE_OPENGL 0) + + # For building the GUI + find_package(QGLViewer) diff --git a/recipes/ros-noetic-libg2o/recipe.yaml b/recipes/ros-noetic-libg2o/recipe.yaml new file mode 100644 index 000000000..12c98d0dc --- /dev/null +++ b/recipes/ros-noetic-libg2o/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-libg2o + version: 2020.5.3 +source: + git_url: https://github.com/ros-gbp/libg2o-release.git + git_rev: release/noetic/libg2o/2020.5.3-1 + folder: ros-noetic-libg2o/src/work + patches: + - patch/ros-noetic-libg2o.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - suitesparse + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - suitesparse + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat b/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-librviz-tutorial/build_catkin.sh b/recipes/ros-noetic-librviz-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch b/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch new file mode 100644 index 000000000..c405d0eea --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/patch/ros-noetic-librviz-tutorial.patch @@ -0,0 +1,23 @@ +diff --git a/librviz_tutorial/CMakeLists.txt b/librviz_tutorial/CMakeLists.txt +index cc430f33..3490fa76 100644 +--- a/librviz_tutorial/CMakeLists.txt ++++ b/librviz_tutorial/CMakeLists.txt +@@ -13,6 +13,18 @@ link_directories(${catkin_LIBRARY_DIRS}) + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This plugin includes Qt widgets, so we must include Qt. + ## We'll use the version that rviz used so they are compatible. + if(rviz_QT_VERSION VERSION_LESS "5") diff --git a/recipes/ros-noetic-librviz-tutorial/recipe.yaml b/recipes/ros-noetic-librviz-tutorial/recipe.yaml new file mode 100644 index 000000000..0dbaea9d2 --- /dev/null +++ b/recipes/ros-noetic-librviz-tutorial/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-librviz-tutorial + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/librviz_tutorial/0.11.0-1 + folder: ros-noetic-librviz-tutorial/src/work + patches: + - patch/ros-noetic-librviz-tutorial.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-lms1xx/bld_catkin.bat b/recipes/ros-noetic-lms1xx/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-lms1xx/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-lms1xx/build_catkin.sh b/recipes/ros-noetic-lms1xx/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-lms1xx/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-lms1xx/recipe.yaml b/recipes/ros-noetic-lms1xx/recipe.yaml new file mode 100644 index 000000000..2769103e5 --- /dev/null +++ b/recipes/ros-noetic-lms1xx/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-lms1xx + version: 0.3.0 +source: + git_url: https://github.com/clearpath-gbp/lms1xx-release.git + git_rev: release/noetic/lms1xx/0.3.0-2 + folder: ros-noetic-lms1xx/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-magnetometer-compass/bld_catkin.bat b/recipes/ros-noetic-magnetometer-compass/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-magnetometer-compass/build_catkin.sh b/recipes/ros-noetic-magnetometer-compass/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-magnetometer-compass/recipe.yaml b/recipes/ros-noetic-magnetometer-compass/recipe.yaml new file mode 100644 index 000000000..e2c39cf19 --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-magnetometer-compass + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/compass.git + git_rev: release/noetic/magnetometer_compass/1.0.3-1 + folder: ros-noetic-magnetometer-compass/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - geographiclib-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-compass-msgs + - ros-noetic-cras-cpp-common + - ros-noetic-geometry-msgs + - ros-noetic-imu-transformer + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-compass-msgs + - ros-noetic-geometry-msgs + - ros-noetic-imu-transformer + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-map-msgs/bld_catkin.bat b/recipes/ros-noetic-map-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-map-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-map-msgs/build_catkin.sh b/recipes/ros-noetic-map-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-map-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-map-msgs/recipe.yaml b/recipes/ros-noetic-map-msgs/recipe.yaml new file mode 100644 index 000000000..0dfcab5a1 --- /dev/null +++ b/recipes/ros-noetic-map-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-map-msgs + version: 1.14.1 +source: + git_url: https://github.com/ros-gbp/navigation_msgs-release.git + git_rev: release/noetic/map_msgs/1.14.1-1 + folder: ros-noetic-map-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-map-server/bld_catkin.bat b/recipes/ros-noetic-map-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-map-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-map-server/build_catkin.sh b/recipes/ros-noetic-map-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-map-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-map-server/patch/ros-noetic-map-server.patch b/recipes/ros-noetic-map-server/patch/ros-noetic-map-server.patch new file mode 100644 index 000000000..971527cc1 --- /dev/null +++ b/recipes/ros-noetic-map-server/patch/ros-noetic-map-server.patch @@ -0,0 +1,20 @@ +diff --git a/map_server/CMakeLists.txt b/map_server/CMakeLists.txt +index 147c9ae50..f360d469c 100644 +--- a/map_server/CMakeLists.txt ++++ b/map_server/CMakeLists.txt +@@ -63,6 +63,7 @@ target_link_libraries(map_server + map_server_image_loader + ${YAMLCPP_LIBRARIES} + ${catkin_LIBRARIES} ++ ${Boost_LIBRARIES} + ) + + add_executable(map_server-map_saver src/map_saver.cpp) +@@ -70,6 +71,7 @@ add_dependencies(map_server-map_saver ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catk + set_target_properties(map_server-map_saver PROPERTIES OUTPUT_NAME map_saver) + target_link_libraries(map_server-map_saver + ${catkin_LIBRARIES} ++ ${Boost_LIBRARIES} + ) + + # copy test data to same place as tests are run diff --git a/recipes/ros-noetic-map-server/recipe.yaml b/recipes/ros-noetic-map-server/recipe.yaml new file mode 100644 index 000000000..8499cee5f --- /dev/null +++ b/recipes/ros-noetic-map-server/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-map-server + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/map_server/1.17.3-1 + folder: ros-noetic-map-server/src/work + patches: + - patch/ros-noetic-map-server.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - bullet + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-tf2 + - sdl + - sdl_image + - yaml-cpp + run: + - bullet + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf2 + - sdl + - sdl_image + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mavros-msgs/bld_catkin.bat b/recipes/ros-noetic-mavros-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mavros-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mavros-msgs/build_catkin.sh b/recipes/ros-noetic-mavros-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mavros-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mavros-msgs/recipe.yaml b/recipes/ros-noetic-mavros-msgs/recipe.yaml new file mode 100644 index 000000000..90a055c5c --- /dev/null +++ b/recipes/ros-noetic-mavros-msgs/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-mavros-msgs + version: 1.17.0 +source: + git_url: https://github.com/mavlink/mavros-release.git + git_rev: release/noetic/mavros_msgs/1.17.0-1 + folder: ros-noetic-mavros-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-abstract-core/bld_catkin.bat b/recipes/ros-noetic-mbf-abstract-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-abstract-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-abstract-core/build_catkin.sh b/recipes/ros-noetic-mbf-abstract-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-abstract-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-abstract-core/recipe.yaml b/recipes/ros-noetic-mbf-abstract-core/recipe.yaml new file mode 100644 index 000000000..e88380ff4 --- /dev/null +++ b/recipes/ros-noetic-mbf-abstract-core/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-mbf-abstract-core + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_abstract_core/0.4.0-1 + folder: ros-noetic-mbf-abstract-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-costmap-core/recipe.yaml b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml new file mode 100644 index 000000000..49d910bc9 --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-mbf-costmap-core + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_costmap_core/0.4.0-1 + folder: ros-noetic-mbf-costmap-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-msgs/bld_catkin.bat b/recipes/ros-noetic-mbf-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-msgs/build_catkin.sh b/recipes/ros-noetic-mbf-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-msgs/recipe.yaml b/recipes/ros-noetic-mbf-msgs/recipe.yaml new file mode 100644 index 000000000..4c0086eab --- /dev/null +++ b/recipes/ros-noetic-mbf-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-mbf-msgs + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_msgs/0.4.0-1 + folder: ros-noetic-mbf-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-genmsg + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-utility/bld_catkin.bat b/recipes/ros-noetic-mbf-utility/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-utility/build_catkin.sh b/recipes/ros-noetic-mbf-utility/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-utility/recipe.yaml b/recipes/ros-noetic-mbf-utility/recipe.yaml new file mode 100644 index 000000000..ed3e4efb3 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-mbf-utility + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_utility/0.4.0-1 + folder: ros-noetic-mbf-utility/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-media-export/bld_catkin.bat b/recipes/ros-noetic-media-export/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-media-export/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-media-export/build_catkin.sh b/recipes/ros-noetic-media-export/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-media-export/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-media-export/recipe.yaml b/recipes/ros-noetic-media-export/recipe.yaml new file mode 100644 index 000000000..a3b0f1898 --- /dev/null +++ b/recipes/ros-noetic-media-export/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-media-export + version: 0.3.0 +source: + git_url: https://github.com/ros-gbp/media_export-release.git + git_rev: release/noetic/media_export/0.3.0-1 + folder: ros-noetic-media-export/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-message-filters/bld_catkin.bat b/recipes/ros-noetic-message-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-message-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-message-filters/build_catkin.sh b/recipes/ros-noetic-message-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-message-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-message-filters/recipe.yaml b/recipes/ros-noetic-message-filters/recipe.yaml new file mode 100644 index 000000000..6a691d847 --- /dev/null +++ b/recipes/ros-noetic-message-filters/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-message-filters + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/message_filters/1.16.0-1 + folder: ros-noetic-message-filters/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-message-generation/bld_catkin.bat b/recipes/ros-noetic-message-generation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-message-generation/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-message-generation/build_catkin.sh b/recipes/ros-noetic-message-generation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-message-generation/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-message-generation/recipe.yaml b/recipes/ros-noetic-message-generation/recipe.yaml new file mode 100644 index 000000000..b068ec2a9 --- /dev/null +++ b/recipes/ros-noetic-message-generation/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-message-generation + version: 0.4.1 +source: + git_url: https://github.com/ros-gbp/message_generation-release.git + git_rev: release/noetic/message_generation/0.4.1-1 + folder: ros-noetic-message-generation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gencpp + - ros-noetic-geneus + - ros-noetic-genlisp + - ros-noetic-genmsg + - ros-noetic-gennodejs + - ros-noetic-genpy + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gencpp + - ros-noetic-geneus + - ros-noetic-genlisp + - ros-noetic-genmsg + - ros-noetic-gennodejs + - ros-noetic-genpy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-message-runtime/bld_catkin.bat b/recipes/ros-noetic-message-runtime/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-message-runtime/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-message-runtime/build_catkin.sh b/recipes/ros-noetic-message-runtime/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-message-runtime/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-message-runtime/recipe.yaml b/recipes/ros-noetic-message-runtime/recipe.yaml new file mode 100644 index 000000000..76669cbe4 --- /dev/null +++ b/recipes/ros-noetic-message-runtime/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-message-runtime + version: 0.4.13 +source: + git_url: https://github.com/ros-gbp/message_runtime-release.git + git_rev: release/noetic/message_runtime/0.4.13-1 + folder: ros-noetic-message-runtime/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-genpy + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-genpy + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat b/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh b/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch b/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch new file mode 100644 index 000000000..e772b6637 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/patch/ros-noetic-microstrain-inertial-driver.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9192d7f..9be8dd3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -128,7 +128,6 @@ catkin_package( + include_directories(${catkin_INCLUDE_DIRS} include ${COMMON_DIR}/include) + + # Set some general CMake flags +-add_definitions(-std=c++11) + set(CMAKE_C_FLAGS "-Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-format -fno-builtin-memcpy") + + set(LIB_SRC_FILES +@@ -198,11 +198,7 @@ set_source_files_properties(${COMMON_SRC_DIR}/services.cpp PROPERTIES COMPILE_OP + add_definitions(-DMICROSTRAIN_DRIVER_VERSION="${DRIVER_GIT_VERSION}") + + # Let the code know if it is being compiled with ROS1 or ROS2 +-if(DEFINED ENV{ROS_VERSION}) +- add_definitions(-DMICROSTRAIN_ROS_VERSION=$ENV{ROS_VERSION}) +-else() +- message(FATAL_ERROR "ROS_VERSION environment variable is not set.") +-endif() ++add_definitions(-DMICROSTRAIN_ROS_VERSION=1) + + # Allow the MSCL include directory to be accessed + include_directories(${MSCL_INC_PATH} ${BOOST_INC_PATH}) + +diff --git a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h +index cc87fb6..9a79e3c 100644 +--- a/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h ++++ b/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/utils/ros_compat.h +@@ -565,7 +565,7 @@ template + RosTimerType createTimer(RosNodeType* node, double hz, void (ClassType::*fp)(), ClassType* obj) + { + return std::make_shared<::ros::Timer>( +- node->template createTimer(ros::Duration(1.0 / hz), [=](const ros::TimerEvent& event) { (obj->*fp)(); })); ++ node->createTimer(::ros::Duration(1.0 / hz), [obj, fp](const ::ros::TimerEvent&) { (obj->*fp)(); })); + } + + /** diff --git a/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml b/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml new file mode 100644 index 000000000..61ba0fce6 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-microstrain-inertial-driver + version: 3.2.1 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_driver/3.2.1-1 + folder: ros-noetic-microstrain-inertial-driver/src/work + patches: + - patch/ros-noetic-microstrain-inertial-driver.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - git + host: + - libcurl + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-mavros-msgs + - ros-noetic-message-generation + - ros-noetic-microstrain-inertial-msgs + - ros-noetic-nav-msgs + - ros-noetic-nmea-msgs + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-mavros-msgs + - ros-noetic-message-runtime + - ros-noetic-microstrain-inertial-msgs + - ros-noetic-nav-msgs + - ros-noetic-nmea-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-microstrain-inertial-msgs/bld_catkin.bat b/recipes/ros-noetic-microstrain-inertial-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-microstrain-inertial-msgs/build_catkin.sh b/recipes/ros-noetic-microstrain-inertial-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-microstrain-inertial-msgs/recipe.yaml b/recipes/ros-noetic-microstrain-inertial-msgs/recipe.yaml new file mode 100644 index 000000000..fd7600498 --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-microstrain-inertial-msgs + version: 3.2.1 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_msgs/3.2.1-1 + folder: ros-noetic-microstrain-inertial-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mk/bld_catkin.bat b/recipes/ros-noetic-mk/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mk/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mk/build_catkin.sh b/recipes/ros-noetic-mk/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mk/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mk/recipe.yaml b/recipes/ros-noetic-mk/recipe.yaml new file mode 100644 index 000000000..dd3c11cc6 --- /dev/null +++ b/recipes/ros-noetic-mk/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-mk + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/mk/1.15.8-1 + folder: ros-noetic-mk/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosbuild + - ros-noetic-rospack + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbuild + - ros-noetic-rospack + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-move-base-msgs/bld_catkin.bat b/recipes/ros-noetic-move-base-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-move-base-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-move-base-msgs/build_catkin.sh b/recipes/ros-noetic-move-base-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-move-base-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-move-base-msgs/recipe.yaml b/recipes/ros-noetic-move-base-msgs/recipe.yaml new file mode 100644 index 000000000..4a9821dec --- /dev/null +++ b/recipes/ros-noetic-move-base-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-move-base-msgs + version: 1.14.1 +source: + git_url: https://github.com/ros-gbp/navigation_msgs-release.git + git_rev: release/noetic/move_base_msgs/1.14.1-1 + folder: ros-noetic-move-base-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-move-base/bld_catkin.bat b/recipes/ros-noetic-move-base/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-move-base/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-move-base/build_catkin.sh b/recipes/ros-noetic-move-base/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-move-base/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-move-base/recipe.yaml b/recipes/ros-noetic-move-base/recipe.yaml new file mode 100644 index 000000000..272d1d7af --- /dev/null +++ b/recipes/ros-noetic-move-base/recipe.yaml @@ -0,0 +1,88 @@ +package: + name: ros-noetic-move-base + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/move_base/1.17.3-1 + folder: ros-noetic-move-base/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-clear-costmap-recovery + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-move-base-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rotate-recovery + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-base-local-planner + - ros-noetic-clear-costmap-recovery + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-move-base-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rotate-recovery + - ros-noetic-std-srvs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-commander/bld_catkin.bat b/recipes/ros-noetic-moveit-commander/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-commander/build_catkin.sh b/recipes/ros-noetic-moveit-commander/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-commander/recipe.yaml b/recipes/ros-noetic-moveit-commander/recipe.yaml new file mode 100644 index 000000000..4e592f6bd --- /dev/null +++ b/recipes/ros-noetic-moveit-commander/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-moveit-commander + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_commander/1.1.13-2 + folder: ros-noetic-moveit-commander/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-rostest + run: + - assimp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-core/bld_catkin.bat b/recipes/ros-noetic-moveit-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-core/build_catkin.sh b/recipes/ros-noetic-moveit-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-core/recipe.yaml b/recipes/ros-noetic-moveit-core/recipe.yaml new file mode 100644 index 000000000..c04873a2b --- /dev/null +++ b/recipes/ros-noetic-moveit-core/recipe.yaml @@ -0,0 +1,122 @@ +package: + name: ros-noetic-moveit-core + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_core/1.1.13-2 + folder: ros-noetic-moveit-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - assimp + - boost + - bullet + - console_bridge + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-resources-pr2-description + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-pluginlib + - ros-noetic-pybind11-catkin + - ros-noetic-random-numbers + - ros-noetic-rosconsole + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rosunit + - ros-noetic-ruckig + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-srdfdom + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - ros-noetic-xmlrpcpp + - urdfdom + - urdfdom_headers + run: + - assimp + - boost + - bullet + - console_bridge + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-fcl + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-pluginlib + - ros-noetic-pybind11-catkin + - ros-noetic-random-numbers + - ros-noetic-rosconsole + - ros-noetic-roslib + - ros-noetic-rostime + - ros-noetic-ruckig + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-srdfdom + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - ros-noetic-xmlrpcpp + - urdfdom + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat b/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh b/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml b/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml new file mode 100644 index 000000000..f4b866492 --- /dev/null +++ b/recipes/ros-noetic-moveit-fake-controller-manager/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-moveit-fake-controller-manager + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_fake_controller_manager/1.1.13-2 + folder: ros-noetic-moveit-fake-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat b/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-kinematics/build_catkin.sh b/recipes/ros-noetic-moveit-kinematics/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-kinematics/recipe.yaml b/recipes/ros-noetic-moveit-kinematics/recipe.yaml new file mode 100644 index 000000000..7e203c91a --- /dev/null +++ b/recipes/ros-noetic-moveit-kinematics/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-moveit-kinematics + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_kinematics/1.1.13-2 + folder: ros-noetic-moveit-kinematics/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-resources-panda-description + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-kdl + - ros-noetic-xmlrpcpp + run: + - eigen + - lxml + - orocos-kdl + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-kdl + - urdfdom + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-msgs/bld_catkin.bat b/recipes/ros-noetic-moveit-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-msgs/build_catkin.sh b/recipes/ros-noetic-moveit-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-msgs/recipe.yaml b/recipes/ros-noetic-moveit-msgs/recipe.yaml new file mode 100644 index 000000000..d59e4e169 --- /dev/null +++ b/recipes/ros-noetic-moveit-msgs/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-moveit-msgs + version: 0.11.4 +source: + git_url: https://github.com/ros-gbp/moveit_msgs-release.git + git_rev: release/noetic/moveit_msgs/0.11.4-1 + folder: ros-noetic-moveit-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-object-recognition-msgs + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-object-recognition-msgs + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat b/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh b/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml b/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml new file mode 100644 index 000000000..a23ae7397 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-chomp/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-planners-chomp + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners_chomp/1.1.13-2 + folder: ros-noetic-moveit-planners-chomp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml new file mode 100644 index 000000000..847ff5049 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-moveit-planners-ompl + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners_ompl/1.1.13-2 + folder: ros-noetic-moveit-planners-ompl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-moveit-resources-panda-description + - ros-noetic-moveit-resources-pr2-description + - ros-noetic-moveit-ros-planning + - ros-noetic-ompl + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-ompl + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners/bld_catkin.bat b/recipes/ros-noetic-moveit-planners/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners/build_catkin.sh b/recipes/ros-noetic-moveit-planners/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners/recipe.yaml b/recipes/ros-noetic-moveit-planners/recipe.yaml new file mode 100644 index 000000000..2f2b9e5e1 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-moveit-planners + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners/1.1.13-2 + folder: ros-noetic-moveit-planners/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-planners-chomp + - ros-noetic-moveit-planners-ompl + - ros-noetic-pilz-industrial-motion-planner + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-plugins/bld_catkin.bat b/recipes/ros-noetic-moveit-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-plugins/build_catkin.sh b/recipes/ros-noetic-moveit-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-plugins/recipe.yaml b/recipes/ros-noetic-moveit-plugins/recipe.yaml new file mode 100644 index 000000000..c708e9565 --- /dev/null +++ b/recipes/ros-noetic-moveit-plugins/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-moveit-plugins + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_plugins/1.1.13-2 + folder: ros-noetic-moveit-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-fake-controller-manager + - ros-noetic-moveit-ros-control-interface + - ros-noetic-moveit-simple-controller-manager + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-fanuc-description/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-fanuc-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-fanuc-description/build_catkin.sh b/recipes/ros-noetic-moveit-resources-fanuc-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-fanuc-description/recipe.yaml b/recipes/ros-noetic-moveit-resources-fanuc-description/recipe.yaml new file mode 100644 index 000000000..313cbb36d --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-description/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-moveit-resources-fanuc-description + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_fanuc_description/0.8.3-1 + folder: ros-noetic-moveit-resources-fanuc-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml new file mode 100644 index 000000000..247901367 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-fanuc-moveit-config/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-resources-fanuc-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_fanuc_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-fanuc-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-robot-state-publisher + - ros-noetic-tf2-ros + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-fanuc-description + - ros-noetic-robot-state-publisher + - ros-noetic-tf2-ros + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-panda-description/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-panda-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-panda-description/build_catkin.sh b/recipes/ros-noetic-moveit-resources-panda-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-panda-description/recipe.yaml b/recipes/ros-noetic-moveit-resources-panda-description/recipe.yaml new file mode 100644 index 000000000..7bc704244 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-description/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-moveit-resources-panda-description + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_panda_description/0.8.3-1 + folder: ros-noetic-moveit-resources-panda-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml new file mode 100644 index 000000000..df7b2c005 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-panda-moveit-config/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-moveit-resources-panda-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_panda_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-panda-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-resources-panda-description + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-tf2-ros + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-resources-panda-description + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-tf2-ros + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-pr2-description/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-pr2-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-pr2-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-pr2-description/build_catkin.sh b/recipes/ros-noetic-moveit-resources-pr2-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-pr2-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-pr2-description/recipe.yaml b/recipes/ros-noetic-moveit-resources-pr2-description/recipe.yaml new file mode 100644 index 000000000..158aae1bb --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-pr2-description/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-moveit-resources-pr2-description + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_pr2_description/0.8.3-1 + folder: ros-noetic-moveit-resources-pr2-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch new file mode 100644 index 000000000..c9249fb48 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch @@ -0,0 +1,28 @@ +diff --git a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp +index 006fe89..ba54c8c 100644 +--- a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp ++++ b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp +@@ -25,10 +25,6 @@ + #include "ikfast.h" // found inside share/openrave-X.Y/python/ikfast.h + using namespace ikfast; + +-// check if the included ikfast version matches what this file was compiled with +-#define IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] +-IKFAST_COMPILE_ASSERT(IKFAST_VERSION==0x1000004a); +- + #include + #include + #include +diff --git a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp +index 25ae8ee..cb7b915 100644 +--- a/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp ++++ b/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp +@@ -798,7 +798,7 @@ bool IKFastKinematicsPlugin::getPositionFK(const std::vector& link_ + return false; + } + +- IkReal angles[num_joints_]; ++ IkReal* angles = new IkReal[num_joints_]; + for (unsigned char i = 0; i < num_joints_; i++) + angles[i] = joint_angles[i]; + diff --git a/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml new file mode 100644 index 000000000..56570b82f --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_ikfast_manipulator_plugin/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin/src/work + patches: + - patch/ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-conversions + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-kdl + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-conversions + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-kdl + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml new file mode 100644 index 000000000..312783a3b --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-moveit-config/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-moveit-resources-prbt-moveit-config + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_moveit_config/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml new file mode 100644 index 000000000..ea2e4b463 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-pg70-support/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-moveit-resources-prbt-pg70-support + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_pg70_support/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-pg70-support/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-noetic-moveit-resources-prbt-moveit-config + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-resources-prbt-support/bld_catkin.bat b/recipes/ros-noetic-moveit-resources-prbt-support/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-support/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-resources-prbt-support/build_catkin.sh b/recipes/ros-noetic-moveit-resources-prbt-support/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-support/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-resources-prbt-support/recipe.yaml b/recipes/ros-noetic-moveit-resources-prbt-support/recipe.yaml new file mode 100644 index 000000000..ed483c4bc --- /dev/null +++ b/recipes/ros-noetic-moveit-resources-prbt-support/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-moveit-resources-prbt-support + version: 0.8.3 +source: + git_url: https://github.com/ros-gbp/moveit_resources-release.git + git_rev: release/noetic/moveit_resources_prbt_support/0.8.3-1 + folder: ros-noetic-moveit-resources-prbt-support/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh b/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml b/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml new file mode 100644 index 000000000..551d776b2 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-benchmarks/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-ros-benchmarks + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_benchmarks/1.1.13-2 + folder: ros-noetic-moveit-ros-benchmarks/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh b/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml b/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml new file mode 100644 index 000000000..ae74c624e --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-control-interface/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-moveit-ros-control-interface + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_control_interface/1.1.13-2 + folder: ros-noetic-moveit-ros-control-interface/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-controller-manager-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-simple-controller-manager + - ros-noetic-pluginlib + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-controller-manager-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-simple-controller-manager + - ros-noetic-pluginlib + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh b/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml b/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml new file mode 100644 index 000000000..13ce94dcb --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-manipulation/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-moveit-ros-manipulation + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_manipulation/1.1.13-2 + folder: ros-noetic-moveit-ros-manipulation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-reconfigure + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh b/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml b/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml new file mode 100644 index 000000000..152961465 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-move-group/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-moveit-ros-move-group + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_move_group/1.1.13-2 + folder: ros-noetic-moveit-ros-move-group/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-moveit-core + - ros-noetic-moveit-kinematics + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml new file mode 100644 index 000000000..ee23c3c5d --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-moveit-ros-occupancy-map-monitor + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_occupancy_map_monitor/1.1.13-2 + folder: ros-noetic-moveit-ros-occupancy-map-monitor/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-rosunit + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-perception/recipe.yaml b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml new file mode 100644 index 000000000..257a86f43 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml @@ -0,0 +1,107 @@ +package: + name: ros-noetic-moveit-ros-perception + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_perception/1.1.13-2 + folder: ros-noetic-moveit-ros-perception/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - freeglut + - glew + - libgomp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - freeglut + - glew + - libgomp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch new file mode 100644 index 000000000..272c0009e --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch @@ -0,0 +1,87 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73f1aa3ea4..67528cf75c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,9 @@ find_package(catkin REQUIRED COMPONENTS + ) + moveit_build_options() + ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(EIGENPY REQUIRED eigenpy) ++ + find_package(PythonInterp REQUIRED) + find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) + +@@ -77,8 +80,11 @@ include_directories(SYSTEM + ${catkin_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} ++ ${EIGENPY_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS}) + ++link_directories(${EIGENPY_LIBRARY_DIRS}) ++ + add_subdirectory(py_bindings_tools) + add_subdirectory(common_planning_interface_objects) + add_subdirectory(planning_scene_interface) +diff --git a/move_group_interface/CMakeLists.txt b/move_group_interface/CMakeLists.txt +index d822174bf0..c3eb1686c0 100644 +--- a/move_group_interface/CMakeLists.txt ++++ b/move_group_interface/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MOVEIT_LIB_NAME moveit_move_group_interface) + + add_library(${MOVEIT_LIB_NAME} src/move_group_interface.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") +-target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${EIGENPY_LIBRARIES}) + add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_move_group.cpp) +diff --git a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +index 17de157197..fdae58ab37 100644 +--- a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h ++++ b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +@@ -56,6 +56,20 @@ + #include + #include + ++#include ++ ++// Import/export for windows dll's and visibility for gcc shared libraries. ++ ++#ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries ++ #ifdef moveit_move_group_interface_EXPORTS // we are building a shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_EXPORT ++ #else // we are using shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_IMPORT ++ #endif ++#else // ros is being built around static libraries ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ++#endif ++ + namespace moveit + { + /** \brief Simple interface to MoveIt components */ +@@ -70,7 +84,7 @@ MOVEIT_CLASS_FORWARD(MoveGroupInterface); // Defines MoveGroupInterfacePtr, Con + \brief Client class to conveniently use the ROS interfaces provided by the move_group node. + + This class includes many default settings to make things easy to use. */ +-class MoveGroupInterface ++class MOVEIT_MOVE_GROUP_INTERFACE_DECL MoveGroupInterface + { + public: + /** \brief Default ROS parameter name from where to read the robot's URDF. Set to 'robot_description' */ +diff --git a/py_bindings_tools/CMakeLists.txt b/py_bindings_tools/CMakeLists.txt +index 1f82d7e4dc..9ef98d8136 100644 +--- a/py_bindings_tools/CMakeLists.txt ++++ b/py_bindings_tools/CMakeLists.txt +@@ -1,5 +1,9 @@ + set(MOVEIT_LIB_NAME moveit_py_bindings_tools) + ++find_package(PythonInterp REQUIRED) ++find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) ++ ++ + add_library(${MOVEIT_LIB_NAME} src/roscpp_initializer.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml b/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml new file mode 100644 index 000000000..310dc1c45 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml @@ -0,0 +1,87 @@ +package: + name: ros-noetic-moveit-ros-planning-interface + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_planning_interface/1.1.13-2 + folder: ros-noetic-moveit-ros-planning-interface/src/work + patches: + - patch/ros-noetic-moveit-ros-planning-interface.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-eigenpy + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-eigenpy + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-warehouse + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh b/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-planning/recipe.yaml b/recipes/ros-noetic-moveit-ros-planning/recipe.yaml new file mode 100644 index 000000000..843fce937 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-moveit-ros-planning + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_planning/1.1.13-2 + folder: ros-noetic-moveit-ros-planning/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-srdfdom + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-srdfdom + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh b/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml b/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml new file mode 100644 index 000000000..d62c462aa --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-robot-interaction/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-moveit-ros-robot-interaction + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_robot_interaction/1.1.13-2 + folder: ros-noetic-moveit-ros-robot-interaction/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh b/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml b/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml new file mode 100644 index 000000000..2f30927e9 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-visualization/recipe.yaml @@ -0,0 +1,95 @@ +package: + name: ros-noetic-moveit-ros-visualization + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_visualization/1.1.13-2 + folder: ros-noetic-moveit-ros-visualization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-geometric-shapes + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-warehouse + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rviz + - ros-noetic-tf2-eigen + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometric-shapes + - ros-noetic-interactive-markers + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-warehouse + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rviz + - ros-noetic-tf2-eigen + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh b/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml b/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml new file mode 100644 index 000000000..f8b2e22c0 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-warehouse/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-moveit-ros-warehouse + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_warehouse/1.1.13-2 + folder: ros-noetic-moveit-ros-warehouse/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-ros-planning + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-warehouse-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-planning + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-warehouse-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros/bld_catkin.bat b/recipes/ros-noetic-moveit-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros/build_catkin.sh b/recipes/ros-noetic-moveit-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros/recipe.yaml b/recipes/ros-noetic-moveit-ros/recipe.yaml new file mode 100644 index 000000000..c35618350 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-moveit-ros + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros/1.1.13-2 + folder: ros-noetic-moveit-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-ros-benchmarks + - ros-noetic-moveit-ros-manipulation + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-perception + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-moveit-ros-robot-interaction + - ros-noetic-moveit-ros-visualization + - ros-noetic-moveit-ros-warehouse + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat b/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh b/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml b/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml new file mode 100644 index 000000000..65d9d787f --- /dev/null +++ b/recipes/ros-noetic-moveit-setup-assistant/recipe.yaml @@ -0,0 +1,88 @@ +package: + name: ros-noetic-moveit-setup-assistant + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_setup_assistant/1.1.13-2 + folder: ros-noetic-moveit-setup-assistant/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - ogre + - ompl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-visualization + - ros-noetic-ompl + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-rviz + - ros-noetic-srdfdom + - ros-noetic-urdf + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-visualization + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rviz + - ros-noetic-srdfdom + - ros-noetic-urdf + - ros-noetic-xacro + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat b/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh b/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml b/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml new file mode 100644 index 000000000..0a1390e05 --- /dev/null +++ b/recipes/ros-noetic-moveit-simple-controller-manager/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-moveit-simple-controller-manager + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_simple_controller_manager/1.1.13-2 + folder: ros-noetic-moveit-simple-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-control-msgs + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat b/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh b/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch b/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch new file mode 100644 index 000000000..fb0478713 --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/patch/ros-noetic-moveit-visual-tools.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7b0544b..67994d2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -43,7 +43,7 @@ catkin_package( + + ## Build + include_directories(include) +-include_directories(SYSTEM ++include_directories( + ${catkin_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} + ) diff --git a/recipes/ros-noetic-moveit-visual-tools/recipe.yaml b/recipes/ros-noetic-moveit-visual-tools/recipe.yaml new file mode 100644 index 000000000..fcca2bb8c --- /dev/null +++ b/recipes/ros-noetic-moveit-visual-tools/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-moveit-visual-tools + version: 3.6.1 +source: + git_url: https://github.com/ros-gbp/moveit_visual_tools-release.git + git_rev: release/noetic/moveit_visual_tools/3.6.1-1 + folder: ros-noetic-moveit-visual-tools/src/work + patches: + - patch/ros-noetic-moveit-visual-tools.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz-visual-tools + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz-visual-tools + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit/bld_catkin.bat b/recipes/ros-noetic-moveit/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit/build_catkin.sh b/recipes/ros-noetic-moveit/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit/recipe.yaml b/recipes/ros-noetic-moveit/recipe.yaml new file mode 100644 index 000000000..329837644 --- /dev/null +++ b/recipes/ros-noetic-moveit/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-moveit + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit/1.1.13-2 + folder: ros-noetic-moveit/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-planners + - ros-noetic-moveit-plugins + - ros-noetic-moveit-ros + - ros-noetic-moveit-setup-assistant + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-movie-publisher/bld_catkin.bat b/recipes/ros-noetic-movie-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-movie-publisher/build_catkin.sh b/recipes/ros-noetic-movie-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-movie-publisher/recipe.yaml b/recipes/ros-noetic-movie-publisher/recipe.yaml new file mode 100644 index 000000000..6fad69233 --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-movie-publisher + version: 1.4.0 +source: + git_url: https://github.com/peci1/movie_publisher-release.git + git_rev: release/noetic/movie_publisher/1.4.0-1 + folder: ros-noetic-movie-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - ffmpeg + - imageio + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-rosbash-params + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nav-core/bld_catkin.bat b/recipes/ros-noetic-nav-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nav-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nav-core/build_catkin.sh b/recipes/ros-noetic-nav-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nav-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nav-core/recipe.yaml b/recipes/ros-noetic-nav-core/recipe.yaml new file mode 100644 index 000000000..6adccfa94 --- /dev/null +++ b/recipes/ros-noetic-nav-core/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-nav-core + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/nav_core/1.17.3-1 + folder: ros-noetic-nav-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nav-msgs/bld_catkin.bat b/recipes/ros-noetic-nav-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nav-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nav-msgs/build_catkin.sh b/recipes/ros-noetic-nav-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nav-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nav-msgs/recipe.yaml b/recipes/ros-noetic-nav-msgs/recipe.yaml new file mode 100644 index 000000000..4ef4eadc7 --- /dev/null +++ b/recipes/ros-noetic-nav-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-nav-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/nav_msgs/1.13.1-1 + folder: ros-noetic-nav-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-navfn/bld_catkin.bat b/recipes/ros-noetic-navfn/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-navfn/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-navfn/build_catkin.sh b/recipes/ros-noetic-navfn/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-navfn/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-navfn/recipe.yaml b/recipes/ros-noetic-navfn/recipe.yaml new file mode 100644 index 000000000..50b7a9fc6 --- /dev/null +++ b/recipes/ros-noetic-navfn/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-navfn + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/navfn/1.17.3-1 + folder: ros-noetic-navfn/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nmea-msgs/bld_catkin.bat b/recipes/ros-noetic-nmea-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nmea-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nmea-msgs/build_catkin.sh b/recipes/ros-noetic-nmea-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nmea-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nmea-msgs/recipe.yaml b/recipes/ros-noetic-nmea-msgs/recipe.yaml new file mode 100644 index 000000000..b77e807ea --- /dev/null +++ b/recipes/ros-noetic-nmea-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-nmea-msgs + version: 1.1.0 +source: + git_url: https://github.com/ros-drivers-gbp/nmea_msgs-release.git + git_rev: release/noetic/nmea_msgs/1.1.0-1 + folder: ros-noetic-nmea-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nmea-navsat-driver/bld_catkin.bat b/recipes/ros-noetic-nmea-navsat-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nmea-navsat-driver/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nmea-navsat-driver/build_catkin.sh b/recipes/ros-noetic-nmea-navsat-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nmea-navsat-driver/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nmea-navsat-driver/recipe.yaml b/recipes/ros-noetic-nmea-navsat-driver/recipe.yaml new file mode 100644 index 000000000..14458344b --- /dev/null +++ b/recipes/ros-noetic-nmea-navsat-driver/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-nmea-navsat-driver + version: 0.6.1 +source: + git_url: https://github.com/ros-drivers-gbp/nmea_navsat_driver-release.git + git_rev: release/noetic/nmea_navsat_driver/0.6.1-2 + folder: ros-noetic-nmea-navsat-driver/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + run: + - pyserial + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nmea-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet-core/bld_catkin.bat b/recipes/ros-noetic-nodelet-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet-core/build_catkin.sh b/recipes/ros-noetic-nodelet-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet-core/recipe.yaml b/recipes/ros-noetic-nodelet-core/recipe.yaml new file mode 100644 index 000000000..f126d9056 --- /dev/null +++ b/recipes/ros-noetic-nodelet-core/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-nodelet-core + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet_core/1.11.0-2 + folder: ros-noetic-nodelet-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat b/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh b/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml b/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml new file mode 100644 index 000000000..5a71173f4 --- /dev/null +++ b/recipes/ros-noetic-nodelet-topic-tools/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-nodelet-topic-tools + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet_topic_tools/1.11.0-2 + folder: ros-noetic-nodelet-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet-tutorial-math/bld_catkin.bat b/recipes/ros-noetic-nodelet-tutorial-math/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet-tutorial-math/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet-tutorial-math/build_catkin.sh b/recipes/ros-noetic-nodelet-tutorial-math/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet-tutorial-math/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet-tutorial-math/recipe.yaml b/recipes/ros-noetic-nodelet-tutorial-math/recipe.yaml new file mode 100644 index 000000000..7f819c14a --- /dev/null +++ b/recipes/ros-noetic-nodelet-tutorial-math/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-nodelet-tutorial-math + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/nodelet_tutorial_math/0.2.0-1 + folder: ros-noetic-nodelet-tutorial-math/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nodelet/bld_catkin.bat b/recipes/ros-noetic-nodelet/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nodelet/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nodelet/build_catkin.sh b/recipes/ros-noetic-nodelet/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nodelet/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nodelet/recipe.yaml b/recipes/ros-noetic-nodelet/recipe.yaml new file mode 100644 index 000000000..3bf83aaa5 --- /dev/null +++ b/recipes/ros-noetic-nodelet/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-nodelet + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet/1.11.0-2 + folder: ros-noetic-nodelet/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - libuuid + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-message-generation + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - boost-cpp + - libuuid + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-object-recognition-msgs/recipe.yaml b/recipes/ros-noetic-object-recognition-msgs/recipe.yaml new file mode 100644 index 000000000..a10c7629c --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-object-recognition-msgs + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/object_recognition_msgs-release.git + git_rev: release/noetic/object_recognition_msgs/0.4.2-1 + folder: ros-noetic-object-recognition-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-mapping/bld_catkin.bat b/recipes/ros-noetic-octomap-mapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-mapping/build_catkin.sh b/recipes/ros-noetic-octomap-mapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-mapping/recipe.yaml b/recipes/ros-noetic-octomap-mapping/recipe.yaml new file mode 100644 index 000000000..63dd507df --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-octomap-mapping + version: 0.6.7 +source: + git_url: https://github.com/ros-gbp/octomap_mapping-release.git + git_rev: release/noetic/octomap_mapping/0.6.7-1 + folder: ros-noetic-octomap-mapping/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap-server + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap-server + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-msgs/bld_catkin.bat b/recipes/ros-noetic-octomap-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-msgs/build_catkin.sh b/recipes/ros-noetic-octomap-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-msgs/recipe.yaml b/recipes/ros-noetic-octomap-msgs/recipe.yaml new file mode 100644 index 000000000..0df79fb30 --- /dev/null +++ b/recipes/ros-noetic-octomap-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-octomap-msgs + version: 0.3.5 +source: + git_url: https://github.com/ros-gbp/octomap_msgs-release.git + git_rev: release/noetic/octomap_msgs/0.3.5-1 + folder: ros-noetic-octomap-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-ros/bld_catkin.bat b/recipes/ros-noetic-octomap-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-ros/build_catkin.sh b/recipes/ros-noetic-octomap-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-ros/recipe.yaml b/recipes/ros-noetic-octomap-ros/recipe.yaml new file mode 100644 index 000000000..0392dcf8d --- /dev/null +++ b/recipes/ros-noetic-octomap-ros/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-octomap-ros + version: 0.4.1 +source: + git_url: https://github.com/ros-gbp/octomap_ros-release.git + git_rev: release/noetic/octomap_ros/0.4.1-1 + folder: ros-noetic-octomap-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-server/bld_catkin.bat b/recipes/ros-noetic-octomap-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-server/build_catkin.sh b/recipes/ros-noetic-octomap-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch b/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch new file mode 100644 index 000000000..c6c02979c --- /dev/null +++ b/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch @@ -0,0 +1,13 @@ +diff --git a/octomap_server/src/OctomapServer.cpp b/octomap_server/src/OctomapServer.cpp +index d18eb7dd..e034b170 100644 +--- a/octomap_server/src/OctomapServer.cpp ++++ b/octomap_server/src/OctomapServer.cpp +@@ -924,7 +924,7 @@ void OctomapServer::filterGroundPlane(const PCLPointCloud& pc, PCLPointCloud& gr + second_pass.setInputCloud(pc.makeShared()); + second_pass.filter(ground); + +- second_pass.setFilterLimitsNegative (true); ++ second_pass.setNegative (true); + second_pass.filter(nonground); + } + diff --git a/recipes/ros-noetic-octomap-server/recipe.yaml b/recipes/ros-noetic-octomap-server/recipe.yaml new file mode 100644 index 000000000..a13a9b6e6 --- /dev/null +++ b/recipes/ros-noetic-octomap-server/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-octomap-server + version: 0.6.7 +source: + git_url: https://github.com/ros-gbp/octomap_mapping-release.git + git_rev: release/noetic/octomap_server/0.6.7-1 + folder: ros-noetic-octomap-server/src/work + patches: + - patch/ros-noetic-octomap-server.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-octomap-ros + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-octomap-ros + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap/bld_catkin.bat b/recipes/ros-noetic-octomap/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap/build_catkin.sh b/recipes/ros-noetic-octomap/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap/patch/ros-noetic-octomap.patch b/recipes/ros-noetic-octomap/patch/ros-noetic-octomap.patch new file mode 100644 index 000000000..b9ed45bec --- /dev/null +++ b/recipes/ros-noetic-octomap/patch/ros-noetic-octomap.patch @@ -0,0 +1,155 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6c14a2d9..395f9cd7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,8 +1,6 @@ + CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2) + PROJECT( octomap ) + +-set(CMAKE_INSTALL_LIBDIR "lib") +- + include(CTest) + include(GNUInstallDirs) + +@@ -57,7 +55,6 @@ LINK_DIRECTORIES(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + + # Installation + +- + set(INSTALL_TARGETS_DEFAULT_ARGS + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" +diff --git a/include/octomap/OcTreeIterator.hxx b/include/octomap/OcTreeIterator.hxx +index 66ae63f8..5f2dd7e5 100644 +--- a/include/octomap/OcTreeIterator.hxx ++++ b/include/octomap/OcTreeIterator.hxx +@@ -39,8 +39,15 @@ + * const with respect to the tree. This file is included within + * OcTreeBaseImpl.h, you should probably not include this directly. + */ +- class iterator_base : public std::iterator{ ++ template ++ class iterator_base{ + public: ++ using iterator_category = std::forward_iterator_tag; ++ using value_type = NodeType; ++ using difference_type = NodeType; ++ using pointer = NodeType*; ++ using reference = NodeType&; ++ + struct StackElement; + /// Default ctor, only used for the end-iterator + iterator_base() : tree(NULL), maxDepth(0){} +@@ -204,16 +211,16 @@ + * } + * @endcode + */ +- class tree_iterator : public iterator_base { ++ class tree_iterator : public iterator_base { + public: +- tree_iterator() : iterator_base(){} ++ tree_iterator() : iterator_base(){} + /** + * Constructor of the iterator. + * + * @param ptree OcTreeBaseImpl on which the iterator is used on + * @param depth Maximum depth to traverse the tree. 0 (default): unlimited + */ +- tree_iterator(OcTreeBaseImpl const* ptree, uint8_t depth=0) : iterator_base(ptree, depth) {}; ++ tree_iterator(OcTreeBaseImpl const* ptree, uint8_t depth=0) : iterator_base(ptree, depth) {}; + + /// postfix increment operator of iterator (it++) + tree_iterator operator++(int){ +@@ -260,9 +267,9 @@ + * @endcode + * + */ +- class leaf_iterator : public iterator_base { ++ class leaf_iterator : public iterator_base { + public: +- leaf_iterator() : iterator_base(){} ++ leaf_iterator() : iterator_base(){} + + /** + * Constructor of the iterator. +@@ -270,7 +277,7 @@ + * @param ptree OcTreeBaseImpl on which the iterator is used on + * @param depth Maximum depth to traverse the tree. 0 (default): unlimited + */ +- leaf_iterator(OcTreeBaseImpl const* ptree, uint8_t depth=0) : iterator_base(ptree, depth) { ++ leaf_iterator(OcTreeBaseImpl const* ptree, uint8_t depth=0) : iterator_base(ptree, depth) { + // tree could be empty (= no stack) + if (this->stack.size() > 0){ + // skip forward to next valid leaf node: +@@ -280,7 +287,7 @@ + } + } + +- leaf_iterator(const leaf_iterator& other) : iterator_base(other) {}; ++ leaf_iterator(const leaf_iterator& other) : iterator_base(other) {}; + + /// postfix increment operator of iterator (it++) + leaf_iterator operator++(int){ +@@ -332,9 +339,9 @@ + * } + * @endcode + */ +- class leaf_bbx_iterator : public iterator_base { ++ class leaf_bbx_iterator : public iterator_base { + public: +- leaf_bbx_iterator() : iterator_base() {}; ++ leaf_bbx_iterator() : iterator_base() {}; + /** + * Constructor of the iterator. The bounding box corners min and max are + * converted into an OcTreeKey first. +@@ -351,7 +358,7 @@ + * @param depth Maximum depth to traverse the tree. 0 (default): unlimited + */ + leaf_bbx_iterator(OcTreeBaseImpl const* ptree, const point3d& min, const point3d& max, uint8_t depth=0) +- : iterator_base(ptree, depth) ++ : iterator_base(ptree, depth) + { + if (this->stack.size() > 0){ + assert(ptree); +@@ -379,7 +386,7 @@ + * @param depth Maximum depth to traverse the tree. 0 (default): unlimited + */ + leaf_bbx_iterator(OcTreeBaseImpl const* ptree, const OcTreeKey& min, const OcTreeKey& max, uint8_t depth=0) +- : iterator_base(ptree, depth), minKey(min), maxKey(max) ++ : iterator_base(ptree, depth), minKey(min), maxKey(max) + { + // tree could be empty (= no stack) + if (this->stack.size() > 0){ +@@ -389,7 +396,7 @@ + } + } + +- leaf_bbx_iterator(const leaf_bbx_iterator& other) : iterator_base(other) { ++ leaf_bbx_iterator(const leaf_bbx_iterator& other) : iterator_base(other) { + minKey = other.minKey; + maxKey = other.maxKey; + } +@@ -430,10 +437,10 @@ + protected: + + void singleIncrement(){ +- typename iterator_base::StackElement top = this->stack.top(); ++ typename iterator_base::StackElement top = this->stack.top(); + this->stack.pop(); + +- typename iterator_base::StackElement s; ++ typename iterator_base::StackElement s; + s.depth = top.depth +1; + key_type center_offset_key = this->tree->tree_max_val >> s.depth; + // push on stack in reverse order +diff --git a/src/testing/CMakeLists.txt b/src/testing/CMakeLists.txt +index eae2876d..5dc1d952 100644 +--- a/src/testing/CMakeLists.txt ++++ b/src/testing/CMakeLists.txt +@@ -50,4 +50,6 @@ if(BUILD_TESTING) + ADD_TEST (NAME test_mapcollection COMMAND test_mapcollection ${PROJECT_SOURCE_DIR}/share/data/mapcoll.txt) + ADD_TEST (NAME test_color_tree COMMAND test_color_tree) + ADD_TEST (NAME test_bbx COMMAND test_bbx) ++ ++ SET_TESTS_PROPERTIES (ReadGraph PROPERTIES DEPENDS InsertScan) + endif() diff --git a/recipes/ros-noetic-octomap/recipe.yaml b/recipes/ros-noetic-octomap/recipe.yaml new file mode 100644 index 000000000..881dd329c --- /dev/null +++ b/recipes/ros-noetic-octomap/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-octomap + version: 1.9.8 +source: + git_url: https://github.com/ros-gbp/octomap-release.git + git_rev: release/noetic/octomap/1.9.8-1 + folder: ros-noetic-octomap/src/work + patches: + - patch/ros-noetic-octomap.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ompl/bld_catkin.bat b/recipes/ros-noetic-ompl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ompl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ompl/build_catkin.sh b/recipes/ros-noetic-ompl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ompl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ompl/patch/ros-noetic-ompl.patch b/recipes/ros-noetic-ompl/patch/ros-noetic-ompl.patch new file mode 100644 index 000000000..603adf891 --- /dev/null +++ b/recipes/ros-noetic-ompl/patch/ros-noetic-ompl.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 53ecf24..29e75f0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -178,8 +178,8 @@ find_program(R_EXEC R) + + add_subdirectory(src) + add_subdirectory(py-bindings) +-add_subdirectory(tests) +-add_subdirectory(demos) ++# add_subdirectory(tests) ++# add_subdirectory(demos) + add_subdirectory(scripts) + add_subdirectory(doc) + diff --git a/recipes/ros-noetic-ompl/recipe.yaml b/recipes/ros-noetic-ompl/recipe.yaml new file mode 100644 index 000000000..c4de1eb9f --- /dev/null +++ b/recipes/ros-noetic-ompl/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-ompl + version: 1.6.0 +source: + git_url: https://github.com/ros-gbp/ompl-release.git + git_rev: release/noetic/ompl/1.6.0-1 + folder: ros-noetic-ompl/src/work + patches: + - patch/ros-noetic-ompl.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - cmake + - eigen + - flann + - numpy + - ompl + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + run: + - boost + - eigen + - flann + - ompl + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-openslam-gmapping/bld_catkin.bat b/recipes/ros-noetic-openslam-gmapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-openslam-gmapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-openslam-gmapping/build_catkin.sh b/recipes/ros-noetic-openslam-gmapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-openslam-gmapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-openslam-gmapping/patch/ros-noetic-openslam-gmapping.patch b/recipes/ros-noetic-openslam-gmapping/patch/ros-noetic-openslam-gmapping.patch new file mode 100644 index 000000000..47d09f564 --- /dev/null +++ b/recipes/ros-noetic-openslam-gmapping/patch/ros-noetic-openslam-gmapping.patch @@ -0,0 +1,1092 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3e37b59..eaef201 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,13 +4,19 @@ project(openslam_gmapping) + ## Find catkin macros and libraries + find_package(catkin REQUIRED) + ++include(GenerateExportHeader) ++set(EXPORT_HEADER_DIR "${CATKIN_DEVEL_PREFIX}/include") ++file(MAKE_DIRECTORY "${EXPORT_HEADER_DIR}") ++ + ################################### + ## catkin specific configuration ## + ################################### + ## The catkin_package macro generates cmake config files for your package + ## Declare things to be passed to dependent projects + catkin_package( +- INCLUDE_DIRS include ++ INCLUDE_DIRS ++ include ++ ${EXPORT_HEADER_DIR} + LIBRARIES utils sensor_base sensor_odometry sensor_range log configfile scanmatcher gridfastslam + ) + +@@ -20,7 +26,10 @@ catkin_package( + + ## Specify additional locations of header files + ## Your package locations should be listed before other locations +-include_directories(include) ++include_directories( ++ include ++ ${EXPORT_HEADER_DIR} ++) + + #SUBDIRS=utils sensor log configfile scanmatcher gridfastslam gui + +@@ -152,9 +161,13 @@ target_link_libraries(gridfastslam + # ) + + ## Mark executables and/or libraries for installation +-install(TARGETS utils autoptr_test sensor_base sensor_odometry sensor_range sensor_range log log_test log_plot scanstudio2carmen rdk2carmen configfile configfile_test scanmatcher scanmatch_test icptest gridfastslam gfs2log gfs2rec gfs2neff ++install(TARGETS utils sensor_base sensor_odometry sensor_range log configfile scanmatcher gridfastslam + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} ++ RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} ++) ++ ++install(TARGETS autoptr_test log_test log_plot scanstudio2carmen rdk2carmen configfile_test scanmatch_test icptest gfs2log gfs2rec gfs2neff + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + +@@ -165,6 +178,27 @@ install(DIRECTORY include/gmapping + PATTERN ".svn" EXCLUDE + ) + ++generate_export_header(utils ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/utils/utils_export.h) ++generate_export_header(sensor_base ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/sensor/sensor_base/sensor_base_export.h) ++generate_export_header(sensor_odometry ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/sensor/sensor_odometry/sensor_odometry_export.h) ++generate_export_header(sensor_range ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/sensor/sensor_range/sensor_range_export.h) ++generate_export_header(log ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/log/log_export.h) ++generate_export_header(configfile ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/configfile/configfile_export.h) ++generate_export_header(scanmatcher ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/scanmatcher/scanmatcher_export.h) ++generate_export_header(gridfastslam ++ EXPORT_FILE_NAME ${EXPORT_HEADER_DIR}/gmapping/gridfastslam/gridfastslam_export.h) ++ ++install(DIRECTORY ++ ${EXPORT_HEADER_DIR}/ ++ DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}) ++ + ############# + ## Testing ## + ############# +diff --git a/carmenwrapper/carmenwrapper.cpp b/carmenwrapper/carmenwrapper.cpp +index 77a8ae5..786436f 100644 +--- a/carmenwrapper/carmenwrapper.cpp ++++ b/carmenwrapper/carmenwrapper.cpp +@@ -177,7 +177,7 @@ bool CarmenWrapper::getReading(RangeReading& reading){ + sem_wait(&m_dequeSem); + pthread_mutex_lock(&m_mutex); + if (!m_rangeDeque.empty()){ +-// cerr << __PRETTY_FUNCTION__ << ": queue size=" <num_readings, res, OrientedPoint(0,0,0), 0, 89.9); + m_sensorMap.insert(make_pair(string("FLASER"), m_rangeSensor)); + +- cout << __PRETTY_FUNCTION__ ++ cout << __func__ + << ": FrontLaser configured." + << " Readings " << m_rangeSensor->beams().size() + << " Resolution " << res << endl; +@@ -241,7 +241,7 @@ void CarmenWrapper::robot_rearlaser_handler(carmen_robot_laser_message* rearlase + m_rangeSensor=new RangeSensor("FLASER",frontlaser->num_readings, res, OrientedPoint(0,0,0), 0, 89.9); + m_sensorMap.insert(make_pair(string("FLASER"), m_rangeSensor)); + +- cout << __PRETTY_FUNCTION__ ++ cout << __func__ + << ": FrontLaser configured." + << " Readings " << m_rangeSensor->beams().size() + << " Resolution " << res << endl; +@@ -324,7 +324,7 @@ RangeReading CarmenWrapper::carmen2reading(const carmen_robot_laser_message& msg + m_frontLaser->updateBeamsLookup(); + m_sensorMap.insert(make_pair(sensorName, m_frontLaser)); + +- cout << __PRETTY_FUNCTION__ ++ cout << __func__ + << ": " << sensorName <<" configured." + << " Readings " << m_frontLaser->beams().size() + << " Resolution " << res << endl; +@@ -346,7 +346,7 @@ RangeReading CarmenWrapper::carmen2reading(const carmen_robot_laser_message& msg + m_rearLaser->updateBeamsLookup(); + m_sensorMap.insert(make_pair(sensorName, m_rearLaser)); + +- cout << __PRETTY_FUNCTION__ ++ cout << __func__ + << ": " << sensorName <<" configured." + << " Readings " << m_rearLaser->beams().size() + << " Resolution " << res << endl; +diff --git a/gfs-carmen/gfs-carmen.cpp b/gfs-carmen/gfs-carmen.cpp +index df477e4..eb20de4 100644 +--- a/gfs-carmen/gfs-carmen.cpp ++++ b/gfs-carmen/gfs-carmen.cpp +@@ -26,7 +26,7 @@ + #include + #include + +-#define DEBUG cout << __PRETTY_FUNCTION__ ++#define DEBUG cout << __func__ + + /* + Example file for interfacing carmen, and gfs. +@@ -227,10 +227,10 @@ int main(int argc, const char * const * argv){ + cerr << "Best Particle is " << best_idx << " with weight " << best_weight << endl; + + */ +- cerr << __PRETTY_FUNCTION__ << "CLONING... " << endl; ++ cerr << __func__ << "CLONING... " << endl; + GridSlamProcessor* newProcessor=processor->clone(); + cerr << "DONE" << endl; +- cerr << __PRETTY_FUNCTION__ << "DELETING... " << endl; ++ cerr << __func__ << "DELETING... " << endl; + delete processor; + cerr << "DONE" << endl; + processor=newProcessor; +diff --git a/gridfastslam/gridslamprocessor.cpp b/gridfastslam/gridslamprocessor.cpp +index 3466746..51fcf52 100644 +--- a/gridfastslam/gridslamprocessor.cpp ++++ b/gridfastslam/gridslamprocessor.cpp +@@ -71,7 +71,7 @@ using namespace std; + m_obsSigmaGain=gsp.m_obsSigmaGain; + + #ifdef MAP_CONSISTENCY_CHECK +- cerr << __PRETTY_FUNCTION__ << ": trajectories copy.... "; ++ cerr << __func__ << ": trajectories copy.... "; + #endif + TNodeVector v=gsp.getTrajectories(); + for (unsigned int i=0; i >::reference* const, int> PointerMap; + PointerMap pmap; + for (ParticleVector::const_iterator it=m_particles.begin(); it!=m_particles.end(); it++){ +@@ -116,17 +116,17 @@ using namespace std; + } + } + } +- cerr << __PRETTY_FUNCTION__ << ": Number of allocated chunks" << pmap.size() << endl; ++ cerr << __func__ << ": Number of allocated chunks" << pmap.size() << endl; + for(PointerMap::const_iterator it=pmap.begin(); it!=pmap.end(); it++) + assert(it->first->shares==(unsigned int)it->second); + +- cerr << __PRETTY_FUNCTION__ << ": SUCCESS, the error is somewhere else" << endl; ++ cerr << __func__ << ": SUCCESS, the error is somewhere else" << endl; + # endif + GridSlamProcessor* cloned=new GridSlamProcessor(*this); + + # ifdef MAP_CONSISTENCY_CHECK +- cerr << __PRETTY_FUNCTION__ << ": trajectories end" << endl; +- cerr << __PRETTY_FUNCTION__ << ": performing afterclone_fit_test" << endl; ++ cerr << __func__ << ": trajectories end" << endl; ++ cerr << __func__ << ": performing afterclone_fit_test" << endl; + ParticleVector::const_iterator jt=cloned->m_particles.begin(); + for (ParticleVector::const_iterator it=m_particles.begin(); it!=m_particles.end(); it++){ + const ScanMatcherMap& m1(it->map); +@@ -143,14 +143,14 @@ using namespace std; + } + } + } +- cerr << __PRETTY_FUNCTION__ << ": SUCCESS, the error is somewhere else" << endl; ++ cerr << __func__ << ": SUCCESS, the error is somewhere else" << endl; + # endif + return cloned; + } + + GridSlamProcessor::~GridSlamProcessor(){ +- cerr << __PRETTY_FUNCTION__ << ": Start" << endl; +- cerr << __PRETTY_FUNCTION__ << ": Deleting tree" << endl; ++ cerr << __func__ << ": Start" << endl; ++ cerr << __func__ << ": Deleting tree" << endl; + for (std::vector::iterator it=m_particles.begin(); it!=m_particles.end(); it++){ + #ifdef TREE_CONSISTENCY_CHECK + TNode* node=it->node; +@@ -164,7 +164,7 @@ using namespace std; + } + + # ifdef MAP_CONSISTENCY_CHECK +- cerr << __PRETTY_FUNCTION__ << ": performing predestruction_fit_test" << endl; ++ cerr << __func__ << ": performing predestruction_fit_test" << endl; + typedef std::map >::reference* const, int> PointerMap; + PointerMap pmap; + for (ParticleVector::const_iterator it=m_particles.begin(); it!=m_particles.end(); it++){ +@@ -183,10 +183,10 @@ using namespace std; + } + } + } +- cerr << __PRETTY_FUNCTION__ << ": Number of allocated chunks" << pmap.size() << endl; ++ cerr << __func__ << ": Number of allocated chunks" << pmap.size() << endl; + for(PointerMap::const_iterator it=pmap.begin(); it!=pmap.end(); it++) + assert(it->first->shares>=(unsigned int)it->second); +- cerr << __PRETTY_FUNCTION__ << ": SUCCESS, the error is somewhere else" << endl; ++ cerr << __func__ << ": SUCCESS, the error is somewhere else" << endl; + # endif + } + +diff --git a/gridfastslam/gridslamprocessor_tree.cpp b/gridfastslam/gridslamprocessor_tree.cpp +index 41685c6..390e2d1 100644 +--- a/gridfastslam/gridslamprocessor_tree.cpp ++++ b/gridfastslam/gridslamprocessor_tree.cpp +@@ -57,22 +57,22 @@ GridSlamProcessor::TNodeVector GridSlamProcessor::getTrajectories() const{ + assert(newnode->childs==0); + if (newnode->parent){ + parentCache.insert(make_pair(newnode->parent, newnode)); +- //cerr << __PRETTY_FUNCTION__ << ": node " << newnode->parent << " flag=" << newnode->parent->flag<< endl; ++ //cerr << __func__ << ": node " << newnode->parent << " flag=" << newnode->parent->flag<< endl; + if (! newnode->parent->flag){ +- //cerr << __PRETTY_FUNCTION__ << ": node " << newnode->parent << " flag=" << newnode->parent->flag<< endl; ++ //cerr << __func__ << ": node " << newnode->parent << " flag=" << newnode->parent->flag<< endl; + newnode->parent->flag=true; + border.push_back(newnode->parent); + } + } + } + +- //cerr << __PRETTY_FUNCTION__ << ": border.size(INITIAL)=" << border.size() << endl; +- //cerr << __PRETTY_FUNCTION__ << ": parentCache.size()=" << parentCache.size() << endl; ++ //cerr << __func__ << ": border.size(INITIAL)=" << border.size() << endl; ++ //cerr << __func__ << ": parentCache.size()=" << parentCache.size() << endl; + while (! border.empty()){ +- //cerr << __PRETTY_FUNCTION__ << ": border.size(PREPROCESS)=" << border.size() << endl; +- //cerr << __PRETTY_FUNCTION__ << ": parentCache.size(PREPROCESS)=" << parentCache.size() << endl; ++ //cerr << __func__ << ": border.size(PREPROCESS)=" << border.size() << endl; ++ //cerr << __func__ << ": parentCache.size(PREPROCESS)=" << parentCache.size() << endl; + const TNode* node=border.front(); +- //cerr << __PRETTY_FUNCTION__ << ": node " << node << endl; ++ //cerr << __func__ << ": node " << node << endl; + border.pop_front(); + if (! node) + continue; +@@ -91,7 +91,7 @@ GridSlamProcessor::TNodeVector GridSlamProcessor::getTrajectories() const{ + } + ////cerr << endl; + parentCache.erase(p.first, p.second); +- //cerr << __PRETTY_FUNCTION__ << ": parentCache.size(POSTERASE)=" << parentCache.size() << endl; ++ //cerr << __func__ << ": parentCache.size(POSTERASE)=" << parentCache.size() << endl; + assert(childs==newnode->childs); + + //unmark the node +@@ -104,7 +104,7 @@ GridSlamProcessor::TNodeVector GridSlamProcessor::getTrajectories() const{ + } + //insert the parent in the cache + } +- //cerr << __PRETTY_FUNCTION__ << " : checking cloned trajectories" << endl; ++ //cerr << __func__ << " : checking cloned trajectories" << endl; + for (unsigned int i=0; i ++#ifndef _WIN32 ++ #include ++#endif + #include "gmapping/gui/gsp_thread.h" + + using namespace GMapping; +diff --git a/gui/gsp_thread.cpp b/gui/gsp_thread.cpp +index f1dc278..1300334 100644 +--- a/gui/gsp_thread.cpp ++++ b/gui/gsp_thread.cpp +@@ -29,7 +29,7 @@ + #include + #endif + +-#define DEBUG cout << __PRETTY_FUNCTION__ ++#define DEBUG cout << __func__ + + using namespace std; + +diff --git a/gui/qparticleviewer.cpp b/gui/qparticleviewer.cpp +index 846e33b..ccf58e7 100644 +--- a/gui/qparticleviewer.cpp ++++ b/gui/qparticleviewer.cpp +@@ -201,7 +201,7 @@ void QParticleViewer::drawMap(const ScanMatcherMap& map){ + Point wmax=Point(pic2map(IntPoint(m_pixmap->width()/2,-m_pixmap->height()/2))); + IntPoint imin=map.world2map(wmin); + IntPoint imax=map.world2map(wmax); +- /* cout << __PRETTY_FUNCTION__ << endl; ++ /* cout << __func__ << endl; + cout << " viewCenter=" << viewCenter.x << "," << viewCenter.y << endl; + cout << " wmin=" << wmin.x << "," << wmin.y << " wmax=" << wmax.x << "," << wmax.y << endl; + cout << " imin=" << imin.x << "," << imin.y << " imax=" << imax.x << "," << imax.y << endl; +diff --git a/include/gmapping/configfile/configfile.h b/include/gmapping/configfile/configfile.h +index 4f4a601..140a731 100644 +--- a/include/gmapping/configfile/configfile.h ++++ b/include/gmapping/configfile/configfile.h +@@ -26,10 +26,11 @@ + #include + #include + #include ++#include + + namespace GMapping{ + +-class AutoVal { ++class CONFIGFILE_EXPORT AutoVal { + public: + AutoVal() {}; + explicit AutoVal(const std::string&); +@@ -62,7 +63,7 @@ private: + std::string m_value; + }; + +-class ConfigFile { ++class CONFIGFILE_EXPORT ConfigFile { + std::map m_content; + + public: +diff --git a/include/gmapping/grid/array2d.h b/include/gmapping/grid/array2d.h +index 2494350..0d0c4eb 100644 +--- a/include/gmapping/grid/array2d.h ++++ b/include/gmapping/grid/array2d.h +@@ -56,7 +56,7 @@ Array2D::Array2D(int xsize, int ysize){ + m_cells=0; + } + if (debug){ +- std::cerr << __PRETTY_FUNCTION__ << std::endl; ++ std::cerr << __func__ << std::endl; + std::cerr << "m_xsize= " << m_xsize<< std::endl; + std::cerr << "m_ysize= " << m_ysize<< std::endl; + } +@@ -79,7 +79,7 @@ Array2D & Array2D::operator=(const Array2D & + m_cells[x][y]=g.m_cells[x][y]; + + if (debug){ +- std::cerr << __PRETTY_FUNCTION__ << std::endl; ++ std::cerr << __func__ << std::endl; + std::cerr << "m_xsize= " << m_xsize<< std::endl; + std::cerr << "m_ysize= " << m_ysize<< std::endl; + } +@@ -97,7 +97,7 @@ Array2D::Array2D(const Array2D & g){ + m_cells[x][y]=g.m_cells[x][y]; + } + if (debug){ +- std::cerr << __PRETTY_FUNCTION__ << std::endl; ++ std::cerr << __func__ << std::endl; + std::cerr << "m_xsize= " << m_xsize<< std::endl; + std::cerr << "m_ysize= " << m_ysize<< std::endl; + } +@@ -106,7 +106,7 @@ Array2D::Array2D(const Array2D & g){ + template + Array2D::~Array2D(){ + if (debug){ +- std::cerr << __PRETTY_FUNCTION__ << std::endl; ++ std::cerr << __func__ << std::endl; + std::cerr << "m_xsize= " << m_xsize<< std::endl; + std::cerr << "m_ysize= " << m_ysize<< std::endl; + } +@@ -121,7 +121,7 @@ Array2D::~Array2D(){ + template + void Array2D::clear(){ + if (debug){ +- std::cerr << __PRETTY_FUNCTION__ << std::endl; ++ std::cerr << __func__ << std::endl; + std::cerr << "m_xsize= " << m_xsize<< std::endl; + std::cerr << "m_ysize= " << m_ysize<< std::endl; + } +diff --git a/include/gmapping/gridfastslam/gfsreader.h b/include/gmapping/gridfastslam/gfsreader.h +index 16041f3..18ab997 100644 +--- a/include/gmapping/gridfastslam/gfsreader.h ++++ b/include/gmapping/gridfastslam/gfsreader.h +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #define MAX_LINE_LENGHT (1000000) + +@@ -16,7 +17,7 @@ namespace GFSReader{ + + using namespace std; + +-struct Record{ ++struct GRIDFASTSLAM_EXPORT Record{ + unsigned int dim; + double time; + virtual ~Record(); +@@ -24,13 +25,13 @@ struct Record{ + virtual void write(ostream& os); + }; + +-struct CommentRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT CommentRecord: public Record{ + string text; + virtual void read(istream& is); + virtual void write(ostream& os); + }; + +-struct PoseRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT PoseRecord: public Record{ + PoseRecord(bool ideal=false); + void read(istream& is); + virtual void write(ostream& os); +@@ -38,13 +39,13 @@ struct PoseRecord: public Record{ + OrientedPoint pose; + }; + +-struct NeffRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT NeffRecord: public Record{ + void read(istream& is); + virtual void write(ostream& os); + double neff; + }; + +-struct EntropyRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT EntropyRecord: public Record{ + void read(istream& is); + virtual void write(ostream& os); + double poseEntropy; +@@ -53,23 +54,23 @@ struct EntropyRecord: public Record{ + }; + + +-struct OdometryRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT OdometryRecord: public Record{ + virtual void read(istream& is); + vector poses; + }; + +-struct RawOdometryRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT RawOdometryRecord: public Record{ + virtual void read(istream& is); + OrientedPoint pose; + }; + +-struct ScanMatchRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT ScanMatchRecord: public Record{ + virtual void read(istream& is); + vector poses; + vector weights; + }; + +-struct LaserRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT LaserRecord: public Record{ + virtual void read(istream& is); + virtual void write(ostream& os); + vector readings; +@@ -77,12 +78,12 @@ struct LaserRecord: public Record{ + double weight; + }; + +-struct ResampleRecord: public Record{ ++struct GRIDFASTSLAM_EXPORT ResampleRecord: public Record{ + virtual void read(istream& is); + vector indexes; + }; + +-struct RecordList: public list{ ++struct GRIDFASTSLAM_EXPORT RecordList: public list{ + mutable int sampleSize; + istream& read(istream& is); + double getLogWeight(unsigned int i) const; +diff --git a/include/gmapping/gridfastslam/gridslamprocessor.h b/include/gmapping/gridfastslam/gridslamprocessor.h +index 3b7f650..6595b51 100644 +--- a/include/gmapping/gridfastslam/gridslamprocessor.h ++++ b/include/gmapping/gridfastslam/gridslamprocessor.h +@@ -14,6 +14,7 @@ + #include + #include + #include "gmapping/gridfastslam/motionmodel.h" ++#include + + + namespace GMapping { +@@ -31,7 +32,7 @@ namespace GMapping { + In order to avoid unnecessary computation the filter state is updated + only when the robot moves more than a given threshold. + */ +- class GridSlamProcessor{ ++ class GRIDFASTSLAM_EXPORT GridSlamProcessor{ + public: + + +diff --git a/include/gmapping/gui/gsp_thread.h b/include/gmapping/gui/gsp_thread.h +index 8be4529..5c64232 100644 +--- a/include/gmapping/gui/gsp_thread.h ++++ b/include/gmapping/gui/gsp_thread.h +@@ -23,8 +23,10 @@ + #ifndef GSP_THREAD_H + #define GSP_THREAD_H + +-#include +-#include ++#ifndef _WIN32 ++ #include ++ #include ++#endif + #include + #include + #include +diff --git a/include/gmapping/log/carmenconfiguration.h b/include/gmapping/log/carmenconfiguration.h +index ee5188f..4eace72 100644 +--- a/include/gmapping/log/carmenconfiguration.h ++++ b/include/gmapping/log/carmenconfiguration.h +@@ -7,10 +7,11 @@ + #include + #include + #include "gmapping/log/configuration.h" ++#include + + namespace GMapping { + +-class CarmenConfiguration: public Configuration, public std::map >{ ++class LOG_EXPORT CarmenConfiguration: public Configuration, public std::map >{ + public: + virtual std::istream& load(std::istream& is); + virtual SensorMap computeSensorMap() const; +diff --git a/include/gmapping/log/configuration.h b/include/gmapping/log/configuration.h +index ce1c81c..0c74444 100644 +--- a/include/gmapping/log/configuration.h ++++ b/include/gmapping/log/configuration.h +@@ -3,10 +3,11 @@ + + #include + #include ++#include + + namespace GMapping { + +-class Configuration{ ++class LOG_EXPORT Configuration{ + public: + virtual ~Configuration(); + virtual SensorMap computeSensorMap() const=0; +diff --git a/include/gmapping/log/sensorlog.h b/include/gmapping/log/sensorlog.h +index d380a3f..ec3bf16 100644 +--- a/include/gmapping/log/sensorlog.h ++++ b/include/gmapping/log/sensorlog.h +@@ -9,10 +9,11 @@ + #include + #include + #include "gmapping/log/configuration.h" ++#include + + namespace GMapping { + +-class SensorLog : public std::list{ ++class LOG_EXPORT SensorLog : public std::list{ + public: + SensorLog(const SensorMap&); + ~SensorLog(); +diff --git a/include/gmapping/log/sensorstream.h b/include/gmapping/log/sensorstream.h +index 2551ba8..227c28f 100644 +--- a/include/gmapping/log/sensorstream.h ++++ b/include/gmapping/log/sensorstream.h +@@ -3,9 +3,10 @@ + + #include + #include "gmapping/log/sensorlog.h" ++#include + + namespace GMapping { +-class SensorStream{ ++class LOG_EXPORT SensorStream{ + public: + SensorStream(const SensorMap& sensorMap); + virtual ~SensorStream(); +@@ -20,7 +21,7 @@ class SensorStream{ + static RangeReading* parseRange(std::istream& is, const RangeSensor* ); + }; + +-class InputSensorStream: public SensorStream{ ++class LOG_EXPORT InputSensorStream: public SensorStream{ + public: + InputSensorStream(const SensorMap& sensorMap, std::istream& is); + virtual operator bool() const; +@@ -32,7 +33,7 @@ class InputSensorStream: public SensorStream{ + std::istream& m_inputStream; + }; + +-class LogSensorStream: public SensorStream{ ++class LOG_EXPORT LogSensorStream: public SensorStream{ + public: + LogSensorStream(const SensorMap& sensorMap, const SensorLog* log); + virtual operator bool() const; +diff --git a/include/gmapping/scanmatcher/scanmatcher.h b/include/gmapping/scanmatcher/scanmatcher.h +index c970ae1..d9d4871 100644 +--- a/include/gmapping/scanmatcher/scanmatcher.h ++++ b/include/gmapping/scanmatcher/scanmatcher.h +@@ -7,11 +7,12 @@ + #include + #include + #include ++#include + #define LASER_MAXBEAMS 2048 + + namespace GMapping { + +-class ScanMatcher{ ++class SCANMATCHER_EXPORT ScanMatcher{ + public: + typedef Covariance3 CovarianceMatrix; + +diff --git a/include/gmapping/scanmatcher/scanmatcherprocessor.h b/include/gmapping/scanmatcher/scanmatcherprocessor.h +index b35ccb4..4cec5a9 100644 +--- a/include/gmapping/scanmatcher/scanmatcherprocessor.h ++++ b/include/gmapping/scanmatcher/scanmatcherprocessor.h +@@ -6,10 +6,11 @@ + #include + //#include + #include "gmapping/scanmatcher/scanmatcher.h" ++#include + + namespace GMapping { + +-class ScanMatcherProcessor{ ++class SCANMATCHER_EXPORT ScanMatcherProcessor{ + public: + ScanMatcherProcessor(const ScanMatcherMap& m); + ScanMatcherProcessor (double xmin, double ymin, double xmax, double ymax, double delta, double patchdelta); +diff --git a/include/gmapping/sensor/sensor_base/sensor.h b/include/gmapping/sensor/sensor_base/sensor.h +index 4368809..492b892 100644 +--- a/include/gmapping/sensor/sensor_base/sensor.h ++++ b/include/gmapping/sensor/sensor_base/sensor.h +@@ -3,10 +3,11 @@ + + #include + #include ++#include + + namespace GMapping{ + +-class Sensor{ ++class SENSOR_BASE_EXPORT Sensor{ + public: + Sensor(const std::string& name=""); + virtual ~Sensor(); +diff --git a/include/gmapping/sensor/sensor_base/sensoreading.h b/include/gmapping/sensor/sensor_base/sensoreading.h +index a51797b..22dda2f 100644 +--- a/include/gmapping/sensor/sensor_base/sensoreading.h ++++ b/include/gmapping/sensor/sensor_base/sensoreading.h +@@ -2,9 +2,11 @@ + #define SENSORREADING_H + + #include "gmapping/sensor/sensor_base/sensor.h" ++#include ++ + namespace GMapping{ + +-class SensorReading{ ++class SENSOR_BASE_EXPORT SensorReading{ + public: + SensorReading(const Sensor* s=0, double time=0); + inline double getTime() const {return m_time;} +diff --git a/include/gmapping/sensor/sensor_base/sensorreading.h b/include/gmapping/sensor/sensor_base/sensorreading.h +index 964ee3d..7d2edfd 100644 +--- a/include/gmapping/sensor/sensor_base/sensorreading.h ++++ b/include/gmapping/sensor/sensor_base/sensorreading.h +@@ -2,9 +2,11 @@ + #define SENSORREADING_H + + #include "gmapping/sensor/sensor_base/sensor.h" ++#include ++ + namespace GMapping{ + +-class SensorReading{ ++class SENSOR_BASE_EXPORT SensorReading{ + public: + SensorReading(const Sensor* s=0, double time=0); + virtual ~SensorReading(); +diff --git a/include/gmapping/sensor/sensor_odometry/odometryreading.h b/include/gmapping/sensor/sensor_odometry/odometryreading.h +index d007d19..2cb09e6 100644 +--- a/include/gmapping/sensor/sensor_odometry/odometryreading.h ++++ b/include/gmapping/sensor/sensor_odometry/odometryreading.h +@@ -5,10 +5,11 @@ + #include + #include + #include "gmapping/sensor/sensor_odometry/odometrysensor.h" ++#include + + namespace GMapping{ + +-class OdometryReading: public SensorReading{ ++class SENSOR_ODOMETRY_EXPORT OdometryReading: public SensorReading{ + public: + OdometryReading(const OdometrySensor* odo, double time=0); + inline const OrientedPoint& getPose() const {return m_pose;} +diff --git a/include/gmapping/sensor/sensor_odometry/odometrysensor.h b/include/gmapping/sensor/sensor_odometry/odometrysensor.h +index 1d18bd3..3caf1a7 100644 +--- a/include/gmapping/sensor/sensor_odometry/odometrysensor.h ++++ b/include/gmapping/sensor/sensor_odometry/odometrysensor.h +@@ -3,10 +3,11 @@ + + #include + #include ++#include + + namespace GMapping{ + +-class OdometrySensor: public Sensor{ ++class SENSOR_ODOMETRY_EXPORT OdometrySensor: public Sensor{ + public: + OdometrySensor(const std::string& name, bool ideal=false); + inline bool isIdeal() const { return m_ideal; } +diff --git a/include/gmapping/sensor/sensor_range/rangereading.h b/include/gmapping/sensor/sensor_range/rangereading.h +index b715a8e..692f571 100644 +--- a/include/gmapping/sensor/sensor_range/rangereading.h ++++ b/include/gmapping/sensor/sensor_range/rangereading.h +@@ -4,10 +4,17 @@ + #include + #include + #include "gmapping/sensor/sensor_range/rangesensor.h" ++#include ++ ++#ifdef _MSC_VER ++namespace std { ++ extern template class __declspec(dllexport) vector; ++}; ++#endif + + namespace GMapping{ + +-class RangeReading: public SensorReading, public std::vector{ ++class SENSOR_RANGE_EXPORT RangeReading: public SensorReading, public std::vector{ + public: + RangeReading(const RangeSensor* rs, double time=0); + RangeReading(unsigned int n_beams, const double* d, const RangeSensor* rs, double time=0); +diff --git a/include/gmapping/sensor/sensor_range/rangesensor.h b/include/gmapping/sensor/sensor_range/rangesensor.h +index 65feffb..2e20653 100644 +--- a/include/gmapping/sensor/sensor_range/rangesensor.h ++++ b/include/gmapping/sensor/sensor_range/rangesensor.h +@@ -4,10 +4,11 @@ + #include + #include + #include ++#include + + namespace GMapping{ + +-class RangeSensor: public Sensor{ ++class SENSOR_RANGE_EXPORT RangeSensor: public Sensor{ + friend class Configuration; + friend class CarmenConfiguration; + friend class CarmenWrapper; +diff --git a/include/gmapping/utils/gvalues.h b/include/gmapping/utils/gvalues.h +index a908f42..5223b9e 100644 +--- a/include/gmapping/utils/gvalues.h ++++ b/include/gmapping/utils/gvalues.h +@@ -15,6 +15,7 @@ + #ifndef __DRAND48_DEFINED__ + #define __DRAND48_DEFINED__ + inline double drand48() { return double(rand()) / RAND_MAX;} ++ inline void srand48(unsigned int seed) { srand(seed); } + #endif + #ifndef M_PI + #define M_PI 3.1415926535897932384626433832795 +diff --git a/include/gmapping/utils/movement.h b/include/gmapping/utils/movement.h +index aabe36d..bd27d83 100644 +--- a/include/gmapping/utils/movement.h ++++ b/include/gmapping/utils/movement.h +@@ -2,11 +2,12 @@ + #define FSRMOVEMENT_H + + #include "gmapping/utils/point.h" ++#include + + namespace GMapping { + + /** fsr-movement (forward, sideward, rotate) **/ +-class FSRMovement { ++class UTILS_EXPORT FSRMovement { + public: + FSRMovement(double f=0.0, double s=0.0, double r=0.0); + FSRMovement(const FSRMovement& src); +diff --git a/include/gmapping/utils/point.h b/include/gmapping/utils/point.h +index 3735aed..26db185 100644 +--- a/include/gmapping/utils/point.h ++++ b/include/gmapping/utils/point.h +@@ -5,7 +5,7 @@ + #include + #include "gmapping/utils/gvalues.h" + +-#define DEBUG_STREAM cerr << __PRETTY_FUNCTION__ << ":" //FIXME ++#define DEBUG_STREAM cerr << __func__ << ":" //FIXME + + namespace GMapping { + +diff --git a/include/gmapping/utils/printmemusage.h b/include/gmapping/utils/printmemusage.h +index fc7fd91..ed61adf 100644 +--- a/include/gmapping/utils/printmemusage.h ++++ b/include/gmapping/utils/printmemusage.h +@@ -1,13 +1,16 @@ + #ifndef PRINTMEMUSAGE_H + #define PRINTMEMUSAGE_H + #include +-#include ++#ifndef _WIN32 ++ #include ++#endif + #include + #include + #include ++#include + + namespace GMapping{ +- void printmemusage(); ++ void UTILS_EXPORT printmemusage(); + }; + + #endif +diff --git a/include/gmapping/utils/printpgm.h b/include/gmapping/utils/printpgm.h +index d9a3b8a..2774909 100644 +--- a/include/gmapping/utils/printpgm.h ++++ b/include/gmapping/utils/printpgm.h +@@ -1,7 +1,9 @@ + #include + #include + #include +-#include ++#ifndef _WIN32 ++ #include ++#endif + + + using namespace std; +diff --git a/include/gmapping/utils/stat.h b/include/gmapping/utils/stat.h +index 62e14fa..74ac601 100644 +--- a/include/gmapping/utils/stat.h ++++ b/include/gmapping/utils/stat.h +@@ -3,17 +3,18 @@ + #include "gmapping/utils/point.h" + #include + #include "gmapping/utils/gvalues.h" ++#include + + namespace GMapping { + + /**stupid utility function for drawing particles form a zero mean, sigma variance normal distribution + probably it should not go there*/ +-double sampleGaussian(double sigma,unsigned long int S=0); ++double UTILS_EXPORT sampleGaussian(double sigma,unsigned int S=0); + +-double evalGaussian(double sigmaSquare, double delta); +-double evalLogGaussian(double sigmaSquare, double delta); +-int sampleUniformInt(int max); +-double sampleUniformDouble(double min, double max); ++double UTILS_EXPORT evalGaussian(double sigmaSquare, double delta); ++double UTILS_EXPORT evalLogGaussian(double sigmaSquare, double delta); ++int UTILS_EXPORT sampleUniformInt(int max); ++double UTILS_EXPORT sampleUniformDouble(double min, double max); + + struct Covariance3{ + Covariance3 operator + (const Covariance3 & cov) const; +@@ -34,7 +35,7 @@ struct Gaussian3{ + OrientedPoint mean; + EigenCovariance3 covariance; + Covariance3 cov; +- double eval(const OrientedPoint& p) const; ++ double UTILS_EXPORT eval(const OrientedPoint& p) const; + void computeFromSamples(const std::vector & poses); + void computeFromSamples(const std::vector & poses, const std::vector& weights ); + }; +diff --git a/log/carmenconfiguration.cpp b/log/carmenconfiguration.cpp +index 7cac05e..9061da8 100644 +--- a/log/carmenconfiguration.cpp ++++ b/log/carmenconfiguration.cpp +@@ -131,12 +131,12 @@ SensorMap CarmenConfiguration::computeSensorMap() const{ + const vector & soff=key->second; + + if( (soff.size()/3newFormat){ + string laser_type, start_angle, field_of_view, angular_resolution, maximum_range, accuracy, remission_mode; + is >> laser_type>> start_angle>> field_of_view>> angular_resolution>> maximum_range>> accuracy>> remission_mode; +diff --git a/scanmatcher/scanmatch_test.cpp b/scanmatcher/scanmatch_test.cpp +index a9a3ccc..a2fc94a 100644 +--- a/scanmatcher/scanmatch_test.cpp ++++ b/scanmatcher/scanmatch_test.cpp +@@ -3,7 +3,9 @@ + #include + #include + #include +-#include ++#ifndef _WIN32 ++ #include ++#endif + #include + #include + #include "gmapping/scanmatcher/scanmatcherprocessor.h" +@@ -11,7 +13,7 @@ + using namespace std; + using namespace GMapping; + +-#define DEBUG cout << __PRETTY_FUNCTION__ ++#define DEBUG cout << __func__ + #define MAX_STRING_LENGTH 1024 + + int main(int argc, const char * const * argv){ +diff --git a/scanmatcher/scanmatcher.cpp b/scanmatcher/scanmatcher.cpp +index 5d7f291..f7fb885 100644 +--- a/scanmatcher/scanmatcher.cpp ++++ b/scanmatcher/scanmatcher.cpp +@@ -341,7 +341,7 @@ double ScanMatcher::optimize(OrientedPoint& pnew, const ScanMatcherMap& map, con + double adelta=m_optAngularDelta, ldelta=m_optLinearDelta; + unsigned int refinement=0; + enum Move{Front, Back, Left, Right, TurnLeft, TurnRight, Done}; +-/* cout << __PRETTY_FUNCTION__<< " readings: "; ++/* cout << __func__<< " readings: "; + for (int i=0; i + //#include + #include ++#include "gmapping/utils/gvalues.h" + #include "gmapping/utils/stat.h" + + namespace GMapping { +@@ -45,7 +46,7 @@ double pf_ran_gaussian(double sigma) + return(sigma * x2 * sqrt(-2.0*log(w)/w)); + } + +-double sampleGaussian(double sigma, unsigned long int S) { ++double sampleGaussian(double sigma, unsigned int S) { + /* + static gsl_rng * r = NULL; + if(r==NULL) { +@@ -56,7 +57,7 @@ double sampleGaussian(double sigma, unsigned long int S) { + if (S!=0) + { + //gsl_rng_set(r, S); +- srand48(S); ++ srand(S); + } + if (sigma==0) + return 0; diff --git a/recipes/ros-noetic-openslam-gmapping/recipe.yaml b/recipes/ros-noetic-openslam-gmapping/recipe.yaml new file mode 100644 index 000000000..db84416cc --- /dev/null +++ b/recipes/ros-noetic-openslam-gmapping/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-openslam-gmapping + version: 0.2.1 +source: + git_url: https://github.com/ros-gbp/openslam_gmapping-release.git + git_rev: release/noetic/openslam_gmapping/0.2.1-1 + folder: ros-noetic-openslam-gmapping/src/work + patches: + - patch/ros-noetic-openslam-gmapping.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pcl-conversions/bld_catkin.bat b/recipes/ros-noetic-pcl-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-conversions/build_catkin.sh b/recipes/ros-noetic-pcl-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-conversions/recipe.yaml b/recipes/ros-noetic-pcl-conversions/recipe.yaml new file mode 100644 index 000000000..aa7a7389c --- /dev/null +++ b/recipes/ros-noetic-pcl-conversions/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-pcl-conversions + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/pcl_conversions/1.7.4-1 + folder: ros-noetic-pcl-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-pcl-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - eigen + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pcl-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-pcl-msgs/bld_catkin.bat b/recipes/ros-noetic-pcl-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-msgs/build_catkin.sh b/recipes/ros-noetic-pcl-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-msgs/recipe.yaml b/recipes/ros-noetic-pcl-msgs/recipe.yaml new file mode 100644 index 000000000..956d0ba16 --- /dev/null +++ b/recipes/ros-noetic-pcl-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-pcl-msgs + version: 0.3.0 +source: + git_url: https://github.com/ros-gbp/pcl_msgs-release.git + git_rev: release/noetic/pcl_msgs/0.3.0-1 + folder: ros-noetic-pcl-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pcl-ros/bld_catkin.bat b/recipes/ros-noetic-pcl-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pcl-ros/build_catkin.sh b/recipes/ros-noetic-pcl-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch b/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch new file mode 100644 index 000000000..255b0c223 --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/patch/ros-noetic-pcl-ros.patch @@ -0,0 +1,985 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2466227d..6230e32e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,15 +1,6 @@ + cmake_minimum_required(VERSION 3.0.2) + project(pcl_ros) + +-# CMake 3.1 added support for CMAKE_CXX_STANDARD to manage the C++ standard version +-# Use CMake C++ standard management where possible for better interoperability +-# with dependencies that export target standards and/or features +-if (${CMAKE_VERSION} VERSION_LESS "3.1") +- add_compile_options(-std=c++14) +-else() +- set(CMAKE_CXX_STANDARD 14) +-endif() +- + ## Find catkin packages + find_package(catkin REQUIRED COMPONENTS + dynamic_reconfigure +diff --git a/include/pcl_ros/point_cloud.h b/include/pcl_ros/point_cloud.h +index 1e038276..26e36c1b 100644 +--- a/include/pcl_ros/point_cloud.h ++++ b/include/pcl_ros/point_cloud.h +@@ -3,11 +3,12 @@ + + #include + #include +-#include ++#include + #include + #include + #include + #include ++#include // for BOOST_FOREACH + #include + #include + #include +diff --git a/src/pcl_ros/features/boundary.cpp b/src/pcl_ros/features/boundary.cpp +index 26ee07c1..61ae786a 100644 +--- a/src/pcl_ros/features/boundary.cpp ++++ b/src/pcl_ros/features/boundary.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/boundary.h" + + void +diff --git a/src/pcl_ros/features/feature.cpp b/src/pcl_ros/features/feature.cpp +index 8647e4eb..c36bd499 100644 +--- a/src/pcl_ros/features/feature.cpp ++++ b/src/pcl_ros/features/feature.cpp +@@ -35,7 +35,7 @@ + * + */ + +-//#include ++//#include + // Include the implementations here instead of compiling them separately to speed up compile time + //#include "normal_3d.cpp" + //#include "boundary.cpp" +@@ -80,7 +80,7 @@ pcl_ros::Feature::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&Feature::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&Feature::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -124,7 +124,7 @@ pcl_ros::Feature::subscribe () + } + else // Use only indices + { +- sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, boost::placeholders::_1)); + // surface not enabled, connect the input-indices duo and register + if (approximate_sync_) + sync_input_surface_indices_a_->connectInput (sub_input_filter_, nf_pc_, sub_indices_filter_); +@@ -134,7 +134,7 @@ pcl_ros::Feature::subscribe () + } + else // Use only surface + { +- sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&Feature::input_callback, this, boost::placeholders::_1)); + // indices not enabled, connect the input-surface duo and register + sub_surface_filter_.subscribe (*pnh_, "surface", max_queue_size_); + if (approximate_sync_) +@@ -144,13 +144,13 @@ pcl_ros::Feature::subscribe () + } + // Register callbacks + if (approximate_sync_) +- sync_input_surface_indices_a_->registerCallback (bind (&Feature::input_surface_indices_callback, this, _1, _2, _3)); ++ sync_input_surface_indices_a_->registerCallback (bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_surface_indices_e_->registerCallback (bind (&Feature::input_surface_indices_callback, this, _1, _2, _3)); ++ sync_input_surface_indices_e_->registerCallback (bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Feature::input_surface_indices_callback, this, _1, PointCloudInConstPtr (), PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Feature::input_surface_indices_callback, this, boost::placeholders::_1, PointCloudInConstPtr (), PointIndicesConstPtr ())); + } + + //////////////////////////////////////////////////////////////////////////////////////////// +@@ -300,7 +300,7 @@ pcl_ros::FeatureFromNormals::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&FeatureFromNormals::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&FeatureFromNormals::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -345,7 +345,7 @@ pcl_ros::FeatureFromNormals::subscribe () + } + else // Use only indices + { +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + if (approximate_sync_) + // surface not enabled, connect the input-indices duo and register + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_pc_, sub_indices_filter_); +@@ -359,7 +359,7 @@ pcl_ros::FeatureFromNormals::subscribe () + // indices not enabled, connect the input-surface duo and register + sub_surface_filter_.subscribe (*pnh_, "surface", max_queue_size_); + +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + if (approximate_sync_) + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, sub_surface_filter_, nf_pi_); + else +@@ -368,7 +368,7 @@ pcl_ros::FeatureFromNormals::subscribe () + } + else + { +- sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&FeatureFromNormals::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_normals_surface_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_pc_, nf_pi_); +@@ -378,9 +378,9 @@ pcl_ros::FeatureFromNormals::subscribe () + + // Register callbacks + if (approximate_sync_) +- sync_input_normals_surface_indices_a_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, _1, _2, _3, _4)); ++ sync_input_normals_surface_indices_a_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)); + else +- sync_input_normals_surface_indices_e_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, _1, _2, _3, _4)); ++ sync_input_normals_surface_indices_e_->registerCallback (bind (&FeatureFromNormals::input_normals_surface_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/features/fpfh.cpp b/src/pcl_ros/features/fpfh.cpp +index 53be549c..f49b05ef 100644 +--- a/src/pcl_ros/features/fpfh.cpp ++++ b/src/pcl_ros/features/fpfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/fpfh.h" + + void +diff --git a/src/pcl_ros/features/fpfh_omp.cpp b/src/pcl_ros/features/fpfh_omp.cpp +index e4adcabb..c811a401 100644 +--- a/src/pcl_ros/features/fpfh_omp.cpp ++++ b/src/pcl_ros/features/fpfh_omp.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/fpfh_omp.h" + + void +diff --git a/src/pcl_ros/features/moment_invariants.cpp b/src/pcl_ros/features/moment_invariants.cpp +index a6e2249a..52801fff 100644 +--- a/src/pcl_ros/features/moment_invariants.cpp ++++ b/src/pcl_ros/features/moment_invariants.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/moment_invariants.h" + + void +diff --git a/src/pcl_ros/features/normal_3d.cpp b/src/pcl_ros/features/normal_3d.cpp +index 042186a9..3ca08fb9 100644 +--- a/src/pcl_ros/features/normal_3d.cpp ++++ b/src/pcl_ros/features/normal_3d.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d.h" + + void +diff --git a/src/pcl_ros/features/normal_3d_omp.cpp b/src/pcl_ros/features/normal_3d_omp.cpp +index 3e92d2f2..96535079 100644 +--- a/src/pcl_ros/features/normal_3d_omp.cpp ++++ b/src/pcl_ros/features/normal_3d_omp.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d_omp.h" + + void +diff --git a/src/pcl_ros/features/normal_3d_tbb.cpp b/src/pcl_ros/features/normal_3d_tbb.cpp +index 680a4a02..85261766 100644 +--- a/src/pcl_ros/features/normal_3d_tbb.cpp ++++ b/src/pcl_ros/features/normal_3d_tbb.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/normal_3d_tbb.h" + + #if defined HAVE_TBB +diff --git a/src/pcl_ros/features/pfh.cpp b/src/pcl_ros/features/pfh.cpp +index dd8409e2..b00cadc4 100644 +--- a/src/pcl_ros/features/pfh.cpp ++++ b/src/pcl_ros/features/pfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/pfh.h" + + void +diff --git a/src/pcl_ros/features/principal_curvatures.cpp b/src/pcl_ros/features/principal_curvatures.cpp +index 501d686e..f8fe44ce 100644 +--- a/src/pcl_ros/features/principal_curvatures.cpp ++++ b/src/pcl_ros/features/principal_curvatures.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/principal_curvatures.h" + + void +diff --git a/src/pcl_ros/features/shot.cpp b/src/pcl_ros/features/shot.cpp +index ed6ba44b..085855f6 100644 +--- a/src/pcl_ros/features/shot.cpp ++++ b/src/pcl_ros/features/shot.cpp +@@ -34,7 +34,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/shot.h" + + void +diff --git a/src/pcl_ros/features/shot_omp.cpp b/src/pcl_ros/features/shot_omp.cpp +index 4563f123..eea70059 100644 +--- a/src/pcl_ros/features/shot_omp.cpp ++++ b/src/pcl_ros/features/shot_omp.cpp +@@ -34,7 +34,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/shot_omp.h" + + void +diff --git a/src/pcl_ros/features/vfh.cpp b/src/pcl_ros/features/vfh.cpp +index ece448fd..e1f6a40a 100644 +--- a/src/pcl_ros/features/vfh.cpp ++++ b/src/pcl_ros/features/vfh.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/features/vfh.h" + + void +diff --git a/src/pcl_ros/filters/crop_box.cpp b/src/pcl_ros/filters/crop_box.cpp +index 2392e2bc..70ab986b 100644 +--- a/src/pcl_ros/filters/crop_box.cpp ++++ b/src/pcl_ros/filters/crop_box.cpp +@@ -36,7 +36,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/crop_box.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -46,7 +46,7 @@ pcl_ros::CropBox::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&CropBox::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&CropBox::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/extract_indices.cpp b/src/pcl_ros/filters/extract_indices.cpp +index e92407a9..73ab4074 100644 +--- a/src/pcl_ros/filters/extract_indices.cpp ++++ b/src/pcl_ros/filters/extract_indices.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/extract_indices.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::ExtractIndices::child_init (ros::NodeHandle &nh, bool &has_service) + has_service = true; + + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractIndices::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractIndices::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + use_indices_ = true; +diff --git a/src/pcl_ros/filters/filter.cpp b/src/pcl_ros/filters/filter.cpp +index 0bfe6d3d..e704912b 100644 +--- a/src/pcl_ros/filters/filter.cpp ++++ b/src/pcl_ros/filters/filter.cpp +@@ -116,18 +116,18 @@ pcl_ros::Filter::subscribe() + { + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&Filter::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&Filter::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&Filter::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&Filter::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Filter::input_indices_callback, this, _1, pcl_msgs::PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&Filter::input_indices_callback, this, boost::placeholders::_1, pcl_msgs::PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -164,7 +164,7 @@ pcl_ros::Filter::onInit () + if (!has_service) + { + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&Filter::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&Filter::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + } + +diff --git a/src/pcl_ros/filters/passthrough.cpp b/src/pcl_ros/filters/passthrough.cpp +index 110fbac5..73fd2c96 100644 +--- a/src/pcl_ros/filters/passthrough.cpp ++++ b/src/pcl_ros/filters/passthrough.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/passthrough.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::PassThrough::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&PassThrough::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&PassThrough::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/project_inliers.cpp b/src/pcl_ros/filters/project_inliers.cpp +index 704dc484..cdc39980 100644 +--- a/src/pcl_ros/filters/project_inliers.cpp ++++ b/src/pcl_ros/filters/project_inliers.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/project_inliers.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -99,13 +99,13 @@ pcl_ros::ProjectInliers::subscribe () + { + sync_input_indices_model_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_model_a_->connectInput (sub_input_filter_, sub_indices_filter_, sub_model_); +- sync_input_indices_model_a_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, _1, _2, _3)); ++ sync_input_indices_model_a_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + else + { + sync_input_indices_model_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_model_e_->connectInput (sub_input_filter_, sub_indices_filter_, sub_model_); +- sync_input_indices_model_e_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, _1, _2, _3)); ++ sync_input_indices_model_e_->registerCallback (bind (&ProjectInliers::input_indices_model_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + } + +diff --git a/src/pcl_ros/filters/radius_outlier_removal.cpp b/src/pcl_ros/filters/radius_outlier_removal.cpp +index 331c6487..aa5c91fa 100644 +--- a/src/pcl_ros/filters/radius_outlier_removal.cpp ++++ b/src/pcl_ros/filters/radius_outlier_removal.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/radius_outlier_removal.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::RadiusOutlierRemoval::child_init (ros::NodeHandle &nh, bool &has_servic + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&RadiusOutlierRemoval::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&RadiusOutlierRemoval::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/statistical_outlier_removal.cpp b/src/pcl_ros/filters/statistical_outlier_removal.cpp +index 2085dee6..e6e74cd1 100644 +--- a/src/pcl_ros/filters/statistical_outlier_removal.cpp ++++ b/src/pcl_ros/filters/statistical_outlier_removal.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/statistical_outlier_removal.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::StatisticalOutlierRemoval::child_init (ros::NodeHandle &nh, bool &has_s + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&StatisticalOutlierRemoval::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&StatisticalOutlierRemoval::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/filters/voxel_grid.cpp b/src/pcl_ros/filters/voxel_grid.cpp +index a3bf77f2..07687f7f 100644 +--- a/src/pcl_ros/filters/voxel_grid.cpp ++++ b/src/pcl_ros/filters/voxel_grid.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/filters/voxel_grid.h" + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -45,7 +45,7 @@ pcl_ros::VoxelGrid::child_init (ros::NodeHandle &nh, bool &has_service) + // Enable the dynamic reconfigure service + has_service = true; + srv_ = boost::make_shared > (nh); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&VoxelGrid::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&VoxelGrid::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + return (true); +diff --git a/src/pcl_ros/io/bag_io.cpp b/src/pcl_ros/io/bag_io.cpp +index 4209d9af..902ce2f5 100644 +--- a/src/pcl_ros/io/bag_io.cpp ++++ b/src/pcl_ros/io/bag_io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include "pcl_ros/io/bag_io.h" + +diff --git a/src/pcl_ros/io/concatenate_data.cpp b/src/pcl_ros/io/concatenate_data.cpp +index 458c6bfe..47d0bb4a 100644 +--- a/src/pcl_ros/io/concatenate_data.cpp ++++ b/src/pcl_ros/io/concatenate_data.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/transforms.h" + #include "pcl_ros/io/concatenate_data.h" + +@@ -118,7 +118,7 @@ pcl_ros::PointCloudConcatenateDataSynchronizer::subscribe () + } + + // Bogus null filter +- filters_[0]->registerCallback (bind (&PointCloudConcatenateDataSynchronizer::input_callback, this, _1)); ++ filters_[0]->registerCallback (bind (&PointCloudConcatenateDataSynchronizer::input_callback, this, boost::placeholders::_1)); + + switch (input_topics_.size ()) + { +@@ -186,9 +186,9 @@ pcl_ros::PointCloudConcatenateDataSynchronizer::subscribe () + } + + if (approximate_sync_) +- ts_a_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, _1, _2, _3, _4, _5, _6, _7, _8)); ++ ts_a_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)); + else +- ts_e_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, _1, _2, _3, _4, _5, _6, _7, _8)); ++ ts_e_->registerCallback (boost::bind (&PointCloudConcatenateDataSynchronizer::input, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/io/concatenate_fields.cpp b/src/pcl_ros/io/concatenate_fields.cpp +index b9567c3a..8b6b3c89 100644 +--- a/src/pcl_ros/io/concatenate_fields.cpp ++++ b/src/pcl_ros/io/concatenate_fields.cpp +@@ -37,7 +37,7 @@ + + /** \author Radu Bogdan Rusu */ + +-#include ++#include + #include "pcl_ros/io/concatenate_fields.h" + + #include +diff --git a/src/pcl_ros/io/io.cpp b/src/pcl_ros/io/io.cpp +index a2dcd458..58ff1152 100644 +--- a/src/pcl_ros/io/io.cpp ++++ b/src/pcl_ros/io/io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include + //#include +diff --git a/src/pcl_ros/io/pcd_io.cpp b/src/pcl_ros/io/pcd_io.cpp +index 9adf6882..31fca766 100644 +--- a/src/pcl_ros/io/pcd_io.cpp ++++ b/src/pcl_ros/io/pcd_io.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/extract_clusters.cpp b/src/pcl_ros/segmentation/extract_clusters.cpp +index 5599b408..e9a03621 100644 +--- a/src/pcl_ros/segmentation/extract_clusters.cpp ++++ b/src/pcl_ros/segmentation/extract_clusters.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include + #include "pcl_ros/segmentation/extract_clusters.h" + +@@ -76,7 +76,7 @@ pcl_ros::EuclideanClusterExtraction::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&EuclideanClusterExtraction::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&EuclideanClusterExtraction::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -108,18 +108,18 @@ pcl_ros::EuclideanClusterExtraction::subscribe () + { + sync_input_indices_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&EuclideanClusterExtraction::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&EuclideanClusterExtraction::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp b/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp +index ff823b19..4d31ea80 100644 +--- a/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp ++++ b/src/pcl_ros/segmentation/extract_polygonal_prism_data.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/transforms.h" + #include "pcl_ros/segmentation/extract_polygonal_prism_data.h" + +@@ -53,7 +53,7 @@ pcl_ros::ExtractPolygonalPrismData::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractPolygonalPrismData::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&ExtractPolygonalPrismData::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + // Advertise the output topics +@@ -85,7 +85,7 @@ pcl_ros::ExtractPolygonalPrismData::subscribe () + } + else + { +- sub_input_filter_.registerCallback (bind (&ExtractPolygonalPrismData::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&ExtractPolygonalPrismData::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_hull_indices_a_->connectInput (sub_input_filter_, sub_hull_filter_, nf_); +@@ -94,9 +94,9 @@ pcl_ros::ExtractPolygonalPrismData::subscribe () + } + // Register callbacks + if (approximate_sync_) +- sync_input_hull_indices_a_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, _1, _2, _3)); ++ sync_input_hull_indices_a_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_hull_indices_e_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, _1, _2, _3)); ++ sync_input_hull_indices_e_->registerCallback (bind (&ExtractPolygonalPrismData::input_hull_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/sac_segmentation.cpp b/src/pcl_ros/segmentation/sac_segmentation.cpp +index bc7b97e7..4ca23d65 100644 +--- a/src/pcl_ros/segmentation/sac_segmentation.cpp ++++ b/src/pcl_ros/segmentation/sac_segmentation.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/segmentation/sac_segmentation.h" + + #include +@@ -107,7 +107,7 @@ pcl_ros::SACSegmentation::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared >(*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentation::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentation::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + NODELET_DEBUG ("[%s::onInit] Nodelet successfully created with the following parameters:\n" +@@ -144,15 +144,15 @@ pcl_ros::SACSegmentation::subscribe () + if (latched_indices_) + { + // Subscribe to a callback that saves the indices +- sub_indices_filter_.registerCallback (bind (&SACSegmentation::indices_callback, this, _1)); ++ sub_indices_filter_.registerCallback (bind (&SACSegmentation::indices_callback, this, boost::placeholders::_1)); + // Subscribe to a callback that sets the header of the saved indices to the cloud header +- sub_input_filter_.registerCallback (bind (&SACSegmentation::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&SACSegmentation::input_callback, this, boost::placeholders::_1)); + + // Synchronize the two topics. No need for an approximate synchronizer here, as we'll + // match the timestamps exactly + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, nf_pi_); +- sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + // "latched_indices" not set, proceed with regular pairs + else +@@ -161,19 +161,19 @@ pcl_ros::SACSegmentation::subscribe () + { + sync_input_indices_a_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > > (max_queue_size_); + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&SACSegmentation::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", max_queue_size_, bind (&SACSegmentation::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +@@ -367,7 +367,7 @@ pcl_ros::SACSegmentationFromNormals::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentationFromNormals::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SACSegmentationFromNormals::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + // Advertise the output topics +@@ -471,7 +471,7 @@ pcl_ros::SACSegmentationFromNormals::subscribe () + else + { + // Create a different callback for copying over the timestamp to fake indices +- sub_input_filter_.registerCallback (bind (&SACSegmentationFromNormals::input_callback, this, _1)); ++ sub_input_filter_.registerCallback (bind (&SACSegmentationFromNormals::input_callback, this, boost::placeholders::_1)); + + if (approximate_sync_) + sync_input_normals_indices_a_->connectInput (sub_input_filter_, sub_normals_filter_, nf_); +@@ -480,9 +480,9 @@ pcl_ros::SACSegmentationFromNormals::subscribe () + } + + if (approximate_sync_) +- sync_input_normals_indices_a_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, _1, _2, _3)); ++ sync_input_normals_indices_a_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + else +- sync_input_normals_indices_e_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, _1, _2, _3)); ++ sync_input_normals_indices_e_->registerCallback (bind (&SACSegmentationFromNormals::input_normals_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/segmentation/segment_differences.cpp b/src/pcl_ros/segmentation/segment_differences.cpp +index e3979549..1066ea3f 100644 +--- a/src/pcl_ros/segmentation/segment_differences.cpp ++++ b/src/pcl_ros/segmentation/segment_differences.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/segmentation/segment_differences.h" + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +@@ -65,20 +65,20 @@ pcl_ros::SegmentDifferences::subscribe () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&SegmentDifferences::config_callback, this, _1, _2); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&SegmentDifferences::config_callback, this, boost::placeholders::_1, boost::placeholders::_2); + srv_->setCallback (f); + + if (approximate_sync_) + { + sync_input_target_a_ = boost::make_shared > > (max_queue_size_); + sync_input_target_a_->connectInput (sub_input_filter_, sub_target_filter_); +- sync_input_target_a_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, _1, _2)); ++ sync_input_target_a_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_target_e_ = boost::make_shared > > (max_queue_size_); + sync_input_target_e_->connectInput (sub_input_filter_, sub_target_filter_); +- sync_input_target_e_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, _1, _2)); ++ sync_input_target_e_->registerCallback (bind (&SegmentDifferences::input_target_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + +diff --git a/src/pcl_ros/surface/convex_hull.cpp b/src/pcl_ros/surface/convex_hull.cpp +index 75903889..08f52f42 100644 +--- a/src/pcl_ros/surface/convex_hull.cpp ++++ b/src/pcl_ros/surface/convex_hull.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/surface/convex_hull.h" + #include + +@@ -76,19 +76,19 @@ pcl_ros::ConvexHull2D::subscribe() + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", 1, bind (&ConvexHull2D::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", 1, bind (&ConvexHull2D::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/pcl_ros/surface/moving_least_squares.cpp b/src/pcl_ros/surface/moving_least_squares.cpp +index 9fd2e348..8baa9cb6 100644 +--- a/src/pcl_ros/surface/moving_least_squares.cpp ++++ b/src/pcl_ros/surface/moving_least_squares.cpp +@@ -35,7 +35,7 @@ + * + */ + +-#include ++#include + #include "pcl_ros/surface/moving_least_squares.h" + ////////////////////////////////////////////////////////////////////////////////////////////// + void +@@ -62,7 +62,7 @@ pcl_ros::MovingLeastSquares::onInit () + + // Enable the dynamic reconfigure service + srv_ = boost::make_shared > (*pnh_); +- dynamic_reconfigure::Server::CallbackType f = boost::bind (&MovingLeastSquares::config_callback, this, _1, _2 ); ++ dynamic_reconfigure::Server::CallbackType f = boost::bind (&MovingLeastSquares::config_callback, this, boost::placeholders::_1, boost::placeholders::_2 ); + srv_->setCallback (f); + + // ---[ Optional parameters +@@ -93,19 +93,19 @@ pcl_ros::MovingLeastSquares::subscribe () + sync_input_indices_a_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_a_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_a_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, _1, _2)); ++ sync_input_indices_a_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + else + { + sync_input_indices_e_ = boost::make_shared > >(max_queue_size_); + // surface not enabled, connect the input-indices duo and register + sync_input_indices_e_->connectInput (sub_input_filter_, sub_indices_filter_); +- sync_input_indices_e_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, _1, _2)); ++ sync_input_indices_e_->registerCallback (bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, boost::placeholders::_2)); + } + } + else + // Subscribe in an old fashion to input only (no filters) +- sub_input_ = pnh_->subscribe ("input", 1, bind (&MovingLeastSquares::input_indices_callback, this, _1, PointIndicesConstPtr ())); ++ sub_input_ = pnh_->subscribe ("input", 1, bind (&MovingLeastSquares::input_indices_callback, this, boost::placeholders::_1, PointIndicesConstPtr ())); + } + + ////////////////////////////////////////////////////////////////////////////////////////////// +diff --git a/src/test/test_tf_message_filter_pcl.cpp b/src/test/test_tf_message_filter_pcl.cpp +index 073e358c..b324fc8a 100644 +--- a/src/test/test_tf_message_filter_pcl.cpp ++++ b/src/test/test_tf_message_filter_pcl.cpp +@@ -37,7 +37,7 @@ + #include + #include + +-#include ++#include + #include + + #include +@@ -104,7 +104,7 @@ TEST(MessageFilter, noTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + ros::Time stamp = ros::Time::now(); +@@ -120,7 +120,7 @@ TEST(MessageFilter, noTransformsSameFrame) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + ros::Time stamp = ros::Time::now(); +@@ -136,7 +136,7 @@ TEST(MessageFilter, preexistingTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + boost::shared_ptr msg(new PCDType); + +@@ -157,7 +157,7 @@ TEST(MessageFilter, postTransforms) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + ros::Time stamp = ros::Time::now(); + boost::shared_ptr msg(new PCDType); +@@ -182,8 +182,8 @@ TEST(MessageFilter, queueSize) + tf::TransformListener tf_client; + Notification n(10); + MessageFilter filter(tf_client, "frame1", 10); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + ros::Time stamp = ros::Time::now(); + std::uint64_t pcl_stamp; +@@ -215,7 +215,7 @@ TEST(MessageFilter, setTargetFrame) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + filter.setTargetFrame("frame1000"); + + ros::Time stamp = ros::Time::now(); +@@ -237,7 +237,7 @@ TEST(MessageFilter, multipleTargetFrames) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + + std::vector target_frames; + target_frames.push_back("frame1"); +@@ -276,7 +276,7 @@ TEST(MessageFilter, tolerance) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerCallback(boost::bind(&Notification::notify, &n, _1)); ++ filter.registerCallback(boost::bind(&Notification::notify, &n, boost::placeholders::_1)); + filter.setTolerance(offset); + + ros::Time stamp = ros::Time::now(); +@@ -316,7 +316,7 @@ TEST(MessageFilter, outTheBackFailure) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + ros::Time stamp = ros::Time::now(); + boost::shared_ptr msg(new PCDType); +@@ -339,7 +339,7 @@ TEST(MessageFilter, emptyFrameIDFailure) + tf::TransformListener tf_client; + Notification n(1); + MessageFilter filter(tf_client, "frame1", 1); +- filter.registerFailureCallback(boost::bind(&Notification::failure, &n, _1, _2)); ++ filter.registerFailureCallback(boost::bind(&Notification::failure, &n, boost::placeholders::_1, boost::placeholders::_2)); + + boost::shared_ptr msg(new PCDType); + msg->header.frame_id = ""; diff --git a/recipes/ros-noetic-pcl-ros/recipe.yaml b/recipes/ros-noetic-pcl-ros/recipe.yaml new file mode 100644 index 000000000..e2090cb9a --- /dev/null +++ b/recipes/ros-noetic-pcl-ros/recipe.yaml @@ -0,0 +1,104 @@ +package: + name: ros-noetic-pcl-ros + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/pcl_ros/1.7.4-1 + folder: ros-noetic-pcl-ros/src/work + patches: + - patch/ros-noetic-pcl-ros.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - eigen + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-nodelet-topic-tools + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-perception-pcl/bld_catkin.bat b/recipes/ros-noetic-perception-pcl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-perception-pcl/build_catkin.sh b/recipes/ros-noetic-perception-pcl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-perception-pcl/recipe.yaml b/recipes/ros-noetic-perception-pcl/recipe.yaml new file mode 100644 index 000000000..5d4c17b4d --- /dev/null +++ b/recipes/ros-noetic-perception-pcl/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-perception-pcl + version: 1.7.4 +source: + git_url: https://github.com/ros-gbp/perception_pcl-release.git + git_rev: release/noetic/perception_pcl/1.7.4-1 + folder: ros-noetic-perception-pcl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pcl-conversions + - ros-noetic-pcl-msgs + - ros-noetic-pcl-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-perception/bld_catkin.bat b/recipes/ros-noetic-perception/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-perception/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-perception/build_catkin.sh b/recipes/ros-noetic-perception/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-perception/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-perception/recipe.yaml b/recipes/ros-noetic-perception/recipe.yaml new file mode 100644 index 000000000..b9167e6a5 --- /dev/null +++ b/recipes/ros-noetic-perception/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-perception + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/perception/1.5.0-1 + folder: ros-noetic-perception/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-image-common + - ros-noetic-image-pipeline + - ros-noetic-image-transport-plugins + - ros-noetic-laser-pipeline + - ros-noetic-perception-pcl + - ros-noetic-ros-base + - ros-noetic-vision-opencv + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pid/bld_catkin.bat b/recipes/ros-noetic-pid/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pid/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pid/build_catkin.sh b/recipes/ros-noetic-pid/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pid/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pid/recipe.yaml b/recipes/ros-noetic-pid/recipe.yaml new file mode 100644 index 000000000..0d6d07817 --- /dev/null +++ b/recipes/ros-noetic-pid/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-pid + version: 0.0.28 +source: + git_url: https://github.com/AndyZe/pid-release.git + git_rev: release/noetic/pid/0.0.28-1 + folder: ros-noetic-pid/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml new file mode 100644 index 000000000..30970206b --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner-testutils/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-pilz-industrial-motion-planner-testutils + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/pilz_industrial_motion_planner_testutils/1.1.13-2 + folder: ros-noetic-pilz-industrial-motion-planner-testutils/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-tf2-eigen + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat b/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh b/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch b/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch new file mode 100644 index 000000000..9bc484ed4 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/patch/ros-noetic-pilz-industrial-motion-planner.patch @@ -0,0 +1,54 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a67a3318c..e6e07c89b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -109,7 +109,7 @@ add_library(planning_context_loader_ptp + src/joint_limits_container.cpp + ) + target_link_libraries(planning_context_loader_ptp +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(planning_context_loader_lin + src/planning_context_loader_lin.cpp +@@ -120,7 +120,7 @@ add_library(planning_context_loader_lin + src/velocity_profile_atrap.cpp + ) + target_link_libraries(planning_context_loader_lin +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(planning_context_loader_circ + src/planning_context_loader_circ.cpp +@@ -131,13 +131,16 @@ add_library(planning_context_loader_circ + src/path_circle_generator.cpp + ) + target_link_libraries(planning_context_loader_circ +- ${catkin_LIBRARIES}) ++ ${PROJECT_NAME} ${catkin_LIBRARIES} ${PROJECT_NAME}) + + add_library(command_list_manager + src/command_list_manager.cpp +- src/plan_components_builder.cpp) ++ src/plan_components_builder.cpp ++ src/trajectory_functions.cpp ++ src/trajectory_blender_transition_window.cpp ++ ) + target_link_libraries(command_list_manager +- ${catkin_LIBRARIES}) ++ ${PROJECT_NAME} ${catkin_LIBRARIES}) + add_dependencies(command_list_manager + ${catkin_EXPORTED_TARGETS}) + +@@ -152,9 +155,10 @@ add_library(sequence_capability + src/limits_container.cpp + src/cartesian_limit.cpp + src/cartesian_limits_aggregator.cpp ++ src/trajectory_functions.cpp + ) + target_link_libraries(sequence_capability +- ${catkin_LIBRARIES}) ++ ${catkin_LIBRARIES} ${PROJECT_NAME}) + add_dependencies(sequence_capability + ${catkin_EXPORTED_TARGETS}) + diff --git a/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml b/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml new file mode 100644 index 000000000..52669f611 --- /dev/null +++ b/recipes/ros-noetic-pilz-industrial-motion-planner/recipe.yaml @@ -0,0 +1,89 @@ +package: + name: ros-noetic-pilz-industrial-motion-planner + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/pilz_industrial_motion_planner/1.1.13-2 + folder: ros-noetic-pilz-industrial-motion-planner/src/work + patches: + - patch/ros-noetic-pilz-industrial-motion-planner.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-code-coverage + - ros-noetic-joint-limits-interface + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-resources-prbt-moveit-config + - ros-noetic-moveit-resources-prbt-pg70-support + - ros-noetic-moveit-resources-prbt-support + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pilz-industrial-motion-planner-testutils + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-limits-interface + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-planning + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pluginlib-tutorials/bld_catkin.bat b/recipes/ros-noetic-pluginlib-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pluginlib-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pluginlib-tutorials/build_catkin.sh b/recipes/ros-noetic-pluginlib-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pluginlib-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pluginlib-tutorials/patch/ros-noetic-pluginlib-tutorials.patch b/recipes/ros-noetic-pluginlib-tutorials/patch/ros-noetic-pluginlib-tutorials.patch new file mode 100644 index 000000000..39c0b642a --- /dev/null +++ b/recipes/ros-noetic-pluginlib-tutorials/patch/ros-noetic-pluginlib-tutorials.patch @@ -0,0 +1,26 @@ +diff --git a/pluginlib_tutorials/CMakeLists.txt b/pluginlib_tutorials/CMakeLists.txt +index 6a9b5ec..370d6d9 100644 +--- a/pluginlib_tutorials/CMakeLists.txt ++++ b/pluginlib_tutorials/CMakeLists.txt +@@ -3,6 +3,7 @@ project(pluginlib_tutorials) + + ## Find catkin dependencies + find_package(catkin REQUIRED COMPONENTS pluginlib roscpp) ++find_package(console_bridge) + + ## Find Boost (headers only) + find_package(Boost REQUIRED) +@@ -19,11 +20,11 @@ include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + + ## pluginlib_tutorials library + add_library(pluginlib_tutorials src/polygon_plugins.cpp) +-target_link_libraries(pluginlib_tutorials ${catkin_LIBRARIES}) ++target_link_libraries(pluginlib_tutorials ${catkin_LIBRARIES} console_bridge::console_bridge) + + ## polygon_loader executable + add_executable(polygon_loader src/polygon_loader.cpp) +-target_link_libraries(polygon_loader ${catkin_LIBRARIES}) ++target_link_libraries(polygon_loader ${catkin_LIBRARIES} console_bridge::console_bridge) + + ## Mark executables and/or libraries for installation + install(TARGETS pluginlib_tutorials polygon_loader diff --git a/recipes/ros-noetic-pluginlib-tutorials/recipe.yaml b/recipes/ros-noetic-pluginlib-tutorials/recipe.yaml new file mode 100644 index 000000000..0a20ed6b0 --- /dev/null +++ b/recipes/ros-noetic-pluginlib-tutorials/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-pluginlib-tutorials + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/pluginlib_tutorials/0.2.0-1 + folder: ros-noetic-pluginlib-tutorials/src/work + patches: + - patch/ros-noetic-pluginlib-tutorials.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pluginlib/bld_catkin.bat b/recipes/ros-noetic-pluginlib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pluginlib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pluginlib/build_catkin.sh b/recipes/ros-noetic-pluginlib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pluginlib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pluginlib/recipe.yaml b/recipes/ros-noetic-pluginlib/recipe.yaml new file mode 100644 index 000000000..bd79056d3 --- /dev/null +++ b/recipes/ros-noetic-pluginlib/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-pluginlib + version: 1.13.0 +source: + git_url: https://github.com/ros-gbp/pluginlib-release.git + git_rev: release/noetic/pluginlib/1.13.0-1 + folder: ros-noetic-pluginlib/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-cmake-modules + - ros-noetic-rosconsole + - ros-noetic-roslib + - tinyxml2 + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-class-loader + - ros-noetic-rosconsole + - ros-noetic-roslib + - tinyxml2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-point-cloud-color/bld_catkin.bat b/recipes/ros-noetic-point-cloud-color/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-color/build_catkin.sh b/recipes/ros-noetic-point-cloud-color/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-color/recipe.yaml b/recipes/ros-noetic-point-cloud-color/recipe.yaml new file mode 100644 index 000000000..76f2ae445 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-point-cloud-color + version: 1.2.1 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_color.git + git_rev: release/noetic/point_cloud_color/1.2.1-1 + folder: ros-noetic-point-cloud-color/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat b/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh b/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml b/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml new file mode 100644 index 000000000..abb3ed438 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-point-cloud-transport-plugins + version: 1.0.5 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport_plugins.git + git_rev: release/noetic/point_cloud_transport_plugins/1.0.5-1 + folder: ros-noetic-point-cloud-transport-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-draco-point-cloud-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat b/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-transport/build_catkin.sh b/recipes/ros-noetic-point-cloud-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-transport/recipe.yaml b/recipes/ros-noetic-point-cloud-transport/recipe.yaml new file mode 100644 index 000000000..27dcd4824 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-point-cloud-transport + version: 1.0.11 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport.git + git_rev: release/noetic/point_cloud_transport/1.0.11-1 + folder: ros-noetic-point-cloud-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-topic-tools + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-cras-py-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pointgrey-camera-description/bld_catkin.bat b/recipes/ros-noetic-pointgrey-camera-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pointgrey-camera-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pointgrey-camera-description/build_catkin.sh b/recipes/ros-noetic-pointgrey-camera-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pointgrey-camera-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pointgrey-camera-description/recipe.yaml b/recipes/ros-noetic-pointgrey-camera-description/recipe.yaml new file mode 100644 index 000000000..2a4af79f4 --- /dev/null +++ b/recipes/ros-noetic-pointgrey-camera-description/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-pointgrey-camera-description + version: 0.15.1 +source: + git_url: https://github.com/ros-drivers-gbp/pointgrey_camera_driver-release.git + git_rev: release/noetic/pointgrey_camera_description/0.15.1-1 + folder: ros-noetic-pointgrey-camera-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-robot-state-publisher + - ros-noetic-urdf + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-polled-camera/bld_catkin.bat b/recipes/ros-noetic-polled-camera/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-polled-camera/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-polled-camera/build_catkin.sh b/recipes/ros-noetic-polled-camera/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-polled-camera/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-polled-camera/recipe.yaml b/recipes/ros-noetic-polled-camera/recipe.yaml new file mode 100644 index 000000000..685c578bf --- /dev/null +++ b/recipes/ros-noetic-polled-camera/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-polled-camera + version: 1.12.0 +source: + git_url: https://github.com/ros-gbp/image_common-release.git + git_rev: release/noetic/polled_camera/1.12.0-1 + folder: ros-noetic-polled-camera/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-position-controllers/bld_catkin.bat b/recipes/ros-noetic-position-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-position-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-position-controllers/build_catkin.sh b/recipes/ros-noetic-position-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-position-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-position-controllers/recipe.yaml b/recipes/ros-noetic-position-controllers/recipe.yaml new file mode 100644 index 000000000..7a2a85301 --- /dev/null +++ b/recipes/ros-noetic-position-controllers/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-position-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/position_controllers/0.21.2-1 + folder: ros-noetic-position-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-pybind11-catkin/activate.bat b/recipes/ros-noetic-pybind11-catkin/activate.bat new file mode 100644 index 000000000..48ff1d713 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/activate.bat @@ -0,0 +1,15 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@REM Don't do anything when we are in conda build. +@if defined SYS_PREFIX exit /b 0 + +@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins" + +@call "%CONDA_PREFIX%\Library\local_setup.bat" +@set PYTHONHOME= +@set "ROS_OS_OVERRIDE=conda:win64" +@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros" +@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library" +@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe" diff --git a/recipes/ros-noetic-pybind11-catkin/activate.ps1 b/recipes/ros-noetic-pybind11-catkin/activate.ps1 new file mode 100644 index 000000000..137e67aef --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/activate.ps1 @@ -0,0 +1,16 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +# Don't do anything when we are in conda build. +if ($null -ne ${env:SYS_PREFIX}) { Exit 0 } + +$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins" + +& "${env:CONDA_PREFIX}\Library\local_setup.ps1" + +$Env:PYTHONHOME='' +$Env:ROS_OS_OVERRIDE='conda:win64' +$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros" +$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library" +$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe" diff --git a/recipes/ros-noetic-pybind11-catkin/activate.sh b/recipes/ros-noetic-pybind11-catkin/activate.sh new file mode 100644 index 000000000..aece97080 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/activate.sh @@ -0,0 +1,26 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +# if [ -z "${CONDA_PREFIX}" ]; then +# exit 0; +# fi + +# Not sure if this is necessary on UNIX? +# export QT_PLUGIN_PATH=$CONDA_PREFIX\plugins + +if [ "$CONDA_BUILD" = "1" -a "$target_platform" != "$build_platform" ]; then + # ignore sourcing + echo "Not activating ROS when cross-compiling"; +else + source $CONDA_PREFIX/setup.sh +fi + +case "$OSTYPE" in + darwin*) export ROS_OS_OVERRIDE="conda:osx"; export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp";; + linux*) export ROS_OS_OVERRIDE="conda:linux";; +esac + +export ROS_ETC_DIR=$CONDA_PREFIX/etc/ros +export AMENT_PREFIX_PATH=$CONDA_PREFIX + +# Looks unnecessary for UNIX +# unset PYTHONHOME= diff --git a/recipes/ros-noetic-pybind11-catkin/bld_catkin.bat b/recipes/ros-noetic-pybind11-catkin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-pybind11-catkin/build_catkin.sh b/recipes/ros-noetic-pybind11-catkin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-pybind11-catkin/deactivate.bat b/recipes/ros-noetic-pybind11-catkin/deactivate.bat new file mode 100644 index 000000000..6de79ccaf --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/deactivate.bat @@ -0,0 +1,18 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@set ROS_OS_OVERRIDE= +@set ROS_DISTRO= +@set ROS_ETC_DIR= +@set ROS_PACKAGE_PATH= +@set ROS_PYTHON_VERSION= +@set ROS_VERSION= +@set PYTHONHOME= +@set PYTHONPATH= +@set CMAKE_PREFIX_PATH= +@set AMENT_PREFIX_PATH= +@set COLCON_PREFIX_PATH= +@set QT_PLUGIN_PATH= +@set ROS_LOCALHOST_ONLY= +@set ament_python_executable= diff --git a/recipes/ros-noetic-pybind11-catkin/deactivate.ps1 b/recipes/ros-noetic-pybind11-catkin/deactivate.ps1 new file mode 100644 index 000000000..9db51e1c2 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/deactivate.ps1 @@ -0,0 +1,18 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +$Env:ROS_OS_OVERRIDE='' +$Env:ROS_DISTRO='' +$Env:ROS_ETC_DIR='' +$Env:ROS_PACKAGE_PATH='' +$Env:ROS_PYTHON_VERSION='' +$Env:ROS_VERSION='' +$Env:PYTHONHOME='' +$Env:PYTHONPATH='' +$Env:CMAKE_PREFIX_PATH='' +$Env:AMENT_PREFIX_PATH='' +$Env:COLCON_PREFIX_PATH='' +$Env:QT_PLUGIN_PATH='' +$Env:ROS_LOCALHOST_ONLY='' +$Env:ament_python_executable='' diff --git a/recipes/ros-noetic-pybind11-catkin/deactivate.sh b/recipes/ros-noetic-pybind11-catkin/deactivate.sh new file mode 100644 index 000000000..87d4d8359 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/deactivate.sh @@ -0,0 +1,21 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if [ -z "${CONDA_PREFIX}" ]; then + exit 0 +fi + +unset ROS_DISTRO +unset ROS_ETC_DIR +unset ROS_PACKAGE_PATH +unset ROS_PYTHON_VERSION +unset CMAKE_PREFIX_PATH +unset AMENT_PREFIX_PATH +unset COLCON_PREFIX_PATH +unset ROS_VERSION +unset ROS_OS_OVERRIDE +# unset PYTHONPATH +# unset PYTHONHOME +# unset QT_PLUGIN_PATH +unset ROS_LOCALHOST_ONLY +unset ament_python_executable +unset RMW_IMPLEMENTATION diff --git a/recipes/ros-noetic-pybind11-catkin/patch/ros-noetic-pybind11-catkin.patch b/recipes/ros-noetic-pybind11-catkin/patch/ros-noetic-pybind11-catkin.patch new file mode 100644 index 000000000..d11fb4010 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/patch/ros-noetic-pybind11-catkin.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5b63626..03d9fe8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,9 +11,6 @@ ExternalProject_Add(pybind11_src + -DPYBIND11_TEST=OFF + -DPYBIND11_INSTALL=ON + -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install +- # Workaround if DESTDIR is set +- # See https://gitlab.kitware.com/cmake/cmake/-/issues/18165. +- INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR= install + ) + + # Copy cmake/pybind11 and include/pybind11 to corresponding devel space folders \ No newline at end of file diff --git a/recipes/ros-noetic-pybind11-catkin/recipe.yaml b/recipes/ros-noetic-pybind11-catkin/recipe.yaml new file mode 100644 index 000000000..d062ee1e6 --- /dev/null +++ b/recipes/ros-noetic-pybind11-catkin/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-pybind11-catkin + version: 2.10.3 +source: + git_url: https://github.com/wxmerkt/pybind11_catkin-release.git + git_rev: release/noetic/pybind11_catkin/2.10.3-2 + folder: ros-noetic-pybind11-catkin/src/work + patches: + - patch/ros-noetic-pybind11-catkin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - eigen + - numpy + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-python-qt-binding/bld_catkin.bat b/recipes/ros-noetic-python-qt-binding/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-python-qt-binding/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-python-qt-binding/build_catkin.sh b/recipes/ros-noetic-python-qt-binding/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-python-qt-binding/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-python-qt-binding/patch/ros-noetic-python-qt-binding.patch b/recipes/ros-noetic-python-qt-binding/patch/ros-noetic-python-qt-binding.patch new file mode 100644 index 000000000..b3fbaaa96 --- /dev/null +++ b/recipes/ros-noetic-python-qt-binding/patch/ros-noetic-python-qt-binding.patch @@ -0,0 +1,229 @@ +diff --git a/src/python_qt_binding/__init__.py b/src/python_qt_binding/__init__.py +index 1e209de..c40ad0b 100644 +--- a/src/python_qt_binding/__init__.py ++++ b/src/python_qt_binding/__init__.py +@@ -66,3 +66,11 @@ + del module + + del sys ++ ++import os ++from .QtGui import QIcon ++current_theme_path = QIcon.themeSearchPaths() ++conda_path = os.environ['CONDA_PREFIX'] ++QIcon.setThemeSearchPaths(current_theme_path + [os.path.join(conda_path, 'share/icons/')]) ++QIcon.setThemeName('Adwaita') ++del os + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8db3c7b..892d81c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,4 +10,5 @@ install(FILES + cmake/shiboken_helper.cmake + cmake/sip_configure.py + cmake/sip_helper.cmake ++ cmake/pyproject.toml.in + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/cmake) +diff --git a/cmake/sip_configure.py b/cmake/sip_configure.py +index 4886059..5ceeaa7 100644 +--- a/cmake/sip_configure.py ++++ b/cmake/sip_configure.py +@@ -181,6 +181,7 @@ def split_paths(paths): + # Force c++14 + if sys.platform == 'win32': + makefile.extra_cxxflags.append('/std:c++14') ++ makefile.extra_cxxflags.append('/DROS_BUILD_SHARED_LIBS=1') + # The __cplusplus flag is not properly set on Windows for backwards + # compatibilty. This flag sets it correctly + makefile.CXXFLAGS.append('/Zc:__cplusplus') +diff --git a/cmake/pyproject.toml.in b/cmake/pyproject.toml.in +new file mode 100644 +index 0000000..9353bab +--- /dev/null ++++ b/cmake/pyproject.toml.in +@@ -0,0 +1,27 @@ ++# Specify sip v5 as the build system for the package. ++[build-system] ++requires = ["PyQt-builder >=1, <2"] ++build-backend = "sipbuild.api" ++ ++[tool.sip] ++project-factory = "pyqtbuild:PyQtProject" ++ ++[tool.sip.builder] ++qmake = "@QMAKE_EXECUTABLE@" ++ ++[tool.sip.project] ++sip-files-dir = "@SIP_FILES_DIR@" ++build-dir = "@SIP_BUILD_DIR@" ++ ++# Specify the PEP 566 metadata for the project. ++[tool.sip.metadata] ++name = "lib@PROJECT_NAME@" ++ ++[tool.sip.bindings.libqt_gui_cpp_sip] ++sip-file = "@SIP_FILE@" ++include-dirs = [@SIP_INCLUDE_DIRS@] ++libraries = [@SIP_LIBARIES@] ++library-dirs = [@SIP_LIBRARY_DIRS@] ++qmake-QT = ["widgets"] ++define-macros = [@SIP_EXTRA_DEFINES@] ++exceptions = true +diff --git a/cmake/sip_helper.cmake b/cmake/sip_helper.cmake +index a055cf5..8f32039 100644 +--- a/cmake/sip_helper.cmake ++++ b/cmake/sip_helper.cmake +@@ -18,7 +18,7 @@ execute_process( + if(PYTHON_SIP_EXECUTABLE) + string(STRIP ${PYTHON_SIP_EXECUTABLE} SIP_EXECUTABLE) + else() +- find_program(SIP_EXECUTABLE sip) ++ find_program(SIP_EXECUTABLE NAMES sip sip-build) + endif() + + if(SIP_EXECUTABLE) +@@ -29,6 +29,15 @@ else() + set(sip_helper_NOTFOUND TRUE) + endif() + ++if(sip_helper_FOUND) ++ execute_process( ++ COMMAND ${SIP_EXECUTABLE} -V ++ OUTPUT_VARIABLE SIP_VERSION ++ ERROR_QUIET) ++ # string(STRIP ${SIP_VERSION} SIP_VERSION) ++ # message(STATUS "SIP binding generator version: ${SIP_VERSION}") ++endif() ++ + # + # Run the SIP generator and compile the generated code into a library. + # +@@ -89,32 +98,107 @@ function(build_sip_binding PROJECT_NAME SIP_FILE) + # SIP configure doesn't handle CMake targets + catkin_replace_imported_library_targets(LIBRARIES ${LIBRARIES}) + +- add_custom_command( +- OUTPUT ${SIP_BUILD_DIR}/Makefile +- COMMAND ${PYTHON_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" \"${EXTRA_DEFINES}\" +- DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} +- WORKING_DIRECTORY ${sip_SOURCE_DIR} +- COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." +- ) ++ if(TRUE) ++ # Since v5, SIP implements the backend per PEP 517, PEP 518 ++ # Here we synthesize `pyproject.toml` and run `pip install` ++ ++ find_program(QMAKE_EXECUTABLE NAMES qmake REQUIRED) + +- if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ file(REMOVE_RECURSE ${SIP_BUILD_DIR}) + file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) +- endif() + +- if(WIN32) +- set(MAKE_EXECUTABLE NMake.exe) ++ set(SIP_FILES_DIR ${sip_SOURCE_DIR}) ++ ++ set(SIP_INCLUDE_DIRS "") ++ foreach(_x ${INCLUDE_DIRS}) ++ set(SIP_INCLUDE_DIRS "${SIP_INCLUDE_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_INCLUDE_DIRS ${SIP_INCLUDE_DIRS}) ++ ++ # SIP expects the libraries WITHOUT the file extension. ++ set(SIP_LIBARIES "") ++ set(SIP_LIBRARY_DIRS "") ++ ++ if(APPLE) ++ set(LIBRARIES_TO_LOOP ${LIBRARIES}) ++ else() ++ set(LIBRARIES_TO_LOOP ${LIBRARIES} ${PYTHON_LIBRARIES}) ++ endif() ++ ++ # message(WARNING "test LIBRARIES_TO_LOOP: ${LIBRARIES_TO_LOOP}") ++ ++ foreach(_x ${LIBRARIES_TO_LOOP}) ++ get_filename_component(_x_NAME "${_x}" NAME_WLE) ++ get_filename_component(_x_DIR "${_x}" DIRECTORY) ++ get_filename_component(_x "${_x_DIR}/${_x_NAME}" ABSOLUTE) ++ STRING(REGEX REPLACE "^lib" "" _x_NAME_NOPREFIX ${_x_NAME}) ++ ++ string(FIND "${_x_NAME_NOPREFIX}" "$" "" _x_NAME_NOPREFIX ${_x_NAME_NOPREFIX}) ++ if(NOT "${out2}" EQUAL -1) ++ message(STATUS "IGNORE: ${_x_NAME_NOPREFIX}") ++ else() ++ set(SIP_LIBARIES "${SIP_LIBARIES},\"${_x_NAME_NOPREFIX}\"") ++ endif() ++ else() ++ set(SIP_LIBARIES "${SIP_LIBARIES},\"${_x_NAME_NOPREFIX}\"") ++ set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x_DIR}\"") ++ endif() ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_LIBARIES ${SIP_LIBARIES}) ++ # message(WARNING "test SIP_LIBARIES: ${SIP_LIBARIES}") ++ foreach(_x ${LIBRARY_DIRS}) ++ set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_LIBRARY_DIRS ${SIP_LIBRARY_DIRS}) ++ ++ # message(WARNING "test lib dir: ${SIP_LIBRARY_DIRS}") ++ # TODO: ++ # I don't know what to do about LDFLAGS_OTHER ++ # what's the equivalent construct in sip5? ++ ++ configure_file( ++ ${__PYTHON_QT_BINDING_SIP_HELPER_DIR}/pyproject.toml.in ++ ${sip_BINARY_DIR}/sip/pyproject.toml ++ ) ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ++ COMMAND ${PYTHON_EXECUTABLE} -m pip install . --target ${sip_LIBRARY_DIR} --no-deps --verbose --upgrade ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_BINARY_DIR}/sip ++ COMMENT "Running SIP-build generator for ${PROJECT_NAME} Python bindings..." ++ ) + else() +- set(MAKE_EXECUTABLE "\$(MAKE)") ++ add_custom_command( ++ OUTPUT ${SIP_BUILD_DIR}/Makefile ++ COMMAND ${PYTHON_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" \"${EXTRA_DEFINES}\" ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_SOURCE_DIR} ++ COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." ++ ) ++ ++ if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) ++ endif() ++ ++ if(WIN32) ++ set(MAKE_EXECUTABLE NMake.exe) ++ else() ++ set(MAKE_EXECUTABLE make) ++ endif() ++ ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ++ COMMAND ${MAKE_EXECUTABLE} ++ DEPENDS ${SIP_BUILD_DIR}/Makefile ++ WORKING_DIRECTORY ${SIP_BUILD_DIR} ++ COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." ++ ) + endif() + +- add_custom_command( +- OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} +- COMMAND ${MAKE_EXECUTABLE} +- DEPENDS ${SIP_BUILD_DIR}/Makefile +- WORKING_DIRECTORY ${SIP_BUILD_DIR} +- COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." +- ) +- + add_custom_target(lib${PROJECT_NAME} ALL + DEPENDS ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} + COMMENT "Meta target for ${PROJECT_NAME} Python bindings..." diff --git a/recipes/ros-noetic-python-qt-binding/recipe.yaml b/recipes/ros-noetic-python-qt-binding/recipe.yaml new file mode 100644 index 000000000..f632497f0 --- /dev/null +++ b/recipes/ros-noetic-python-qt-binding/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-python-qt-binding + version: 0.4.4 +source: + git_url: https://github.com/ros-gbp/python_qt_binding-release.git + git_rev: release/noetic/python_qt_binding/0.4.4-1 + folder: ros-noetic-python-qt-binding/src/work + patches: + - patch/ros-noetic-python-qt-binding.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(build_platform != target_platform): pyqt-builder + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pyqt + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosbuild + - sel(build_platform == target_platform): pyqt-builder + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - adwaita-icon-theme + - pyqt + - pyqt-builder + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-qt-dotgraph/bld_catkin.bat b/recipes/ros-noetic-qt-dotgraph/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-qt-dotgraph/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-qt-dotgraph/build_catkin.sh b/recipes/ros-noetic-qt-dotgraph/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-qt-dotgraph/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-qt-dotgraph/recipe.yaml b/recipes/ros-noetic-qt-dotgraph/recipe.yaml new file mode 100644 index 000000000..16c0418c8 --- /dev/null +++ b/recipes/ros-noetic-qt-dotgraph/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-qt-dotgraph + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/qt_gui_core-release.git + git_rev: release/noetic/qt_dotgraph/0.4.2-1 + folder: ros-noetic-qt-dotgraph/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pygraphviz + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - pydot + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-qt-gui-cpp/bld_catkin.bat b/recipes/ros-noetic-qt-gui-cpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-qt-gui-cpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-qt-gui-cpp/build_catkin.sh b/recipes/ros-noetic-qt-gui-cpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-qt-gui-cpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-qt-gui-cpp/patch/ros-noetic-qt-gui-cpp.patch b/recipes/ros-noetic-qt-gui-cpp/patch/ros-noetic-qt-gui-cpp.patch new file mode 100644 index 000000000..8420016de --- /dev/null +++ b/recipes/ros-noetic-qt-gui-cpp/patch/ros-noetic-qt-gui-cpp.patch @@ -0,0 +1,76 @@ +diff --git a/src/qt_gui_cpp/CMakeLists.txt b/src/qt_gui_cpp/CMakeLists.txt +index 9e9a0b92..82a91a9d 100644 +--- a/src/qt_gui_cpp/CMakeLists.txt ++++ b/src/qt_gui_cpp/CMakeLists.txt +@@ -1,6 +1,6 @@ + set(Python_ADDITIONAL_VERSIONS "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") + find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) +-find_package(Qt5Widgets REQUIRED) ++find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") + endif() +diff --git a/src/qt_gui_cpp_sip/CMakeLists.txt b/src/qt_gui_cpp_sip/CMakeLists.txt +index 370457fe..5fbae184 100644 +--- a/src/qt_gui_cpp_sip/CMakeLists.txt ++++ b/src/qt_gui_cpp_sip/CMakeLists.txt +@@ -26,12 +26,33 @@ set(qt_gui_cpp_sip_DEPENDENT_FILES + ${qt_gui_cpp_HDRS_DIR}/settings.h + ) + ++find_package(Python REQUIRED COMPONENTS Interpreter Development) ++find_package(TinyXML REQUIRED) ++ + # maintain context for different named target + set(qt_gui_cpp_sip_INCLUDE_DIRS ${qt_gui_cpp_INCLUDE_DIRS} "${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${catkin_INCLUDE_DIRS}) +-set(qt_gui_cpp_sip_LIBRARIES ${qt_gui_cpp_LIBRARIES} ${PROJECT_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) +-set(qt_gui_cpp_sip_LIBRARY_DIRS ${qt_gui_cpp_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/lib) ++set(_qt_gui_cpp_sip_LIBRARIES ${qt_gui_cpp_LIBRARIES} ${PROJECT_NAME} ${Boost_LIBRARIES} ${TinyXML_LIBRARIES}) ++ ++if(NOT APPLE) ++ set(_qt_gui_cpp_sip_LIBRARIES ${_qt_gui_cpp_sip_LIBRARIES} Python::Python) ++endif() ++ ++message(WARNING "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") ++set(qt_gui_cpp_sip_LIBRARY_DIRS ${CMAKE_BINARY_DIR} ${qt_gui_cpp_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/lib /usr/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/) + set(qt_gui_cpp_sip_LDFLAGS_OTHER ${qt_gui_cpp_LDFLAGS_OTHER}) + ++# sip needs libraries to have resolved paths and cannot link to cmake targets ++foreach(_lib_name_raw ${_qt_gui_cpp_sip_LIBRARIES}) ++ string(REGEX REPLACE "\\.so\\.[0-9,\\.]*" ".so" _lib_name ${_lib_name_raw}) ++ if(TARGET ${_lib_name}) ++ # Use a nifty cmake generator expression to resolve the target location ++ list(APPEND qt_gui_cpp_sip_LIBRARIES $) ++ else() ++ # This library should work as is ++ list(APPEND qt_gui_cpp_sip_LIBRARIES ${_lib_name}) ++ endif() ++endforeach() ++ + find_package(python_qt_binding REQUIRED) + include(${python_qt_binding_EXTRAS_DIR}/sip_helper.cmake) + +@@ -47,11 +68,11 @@ if(sip_helper_FOUND) + ) + + if(APPLE) +- set(LIBQT_GUI_CPP_SIP_SUFFIX .so) ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ".cpython-${Python_VERSION_MAJOR}${Python_VERSION_MINOR}-darwin.so") + elseif(WIN32) + set(LIBQT_GUI_CPP_SIP_SUFFIX .pyd) + else() +- set(LIBQT_GUI_CPP_SIP_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ".cpython-${Python_VERSION_MAJOR}${Python_VERSION_MINOR}-${CMAKE_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") + endif() + + install(FILES ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}/libqt_gui_cpp_sip${LIBQT_GUI_CPP_SIP_SUFFIX} +diff --git a/src/qt_gui_cpp_sip/qt_gui_cpp.sip b/src/qt_gui_cpp_sip/qt_gui_cpp.sip +index ef3c52d7..cd02078d 100644 +--- a/src/qt_gui_cpp_sip/qt_gui_cpp.sip ++++ b/src/qt_gui_cpp_sip/qt_gui_cpp.sip +@@ -1,4 +1,4 @@ +-%Module libqt_gui_cpp_sip 1 ++%Module libqt_gui_cpp_sip + + %Import QtCore/QtCoremod.sip + %Import QtGui/QtGuimod.sip diff --git a/recipes/ros-noetic-qt-gui-cpp/recipe.yaml b/recipes/ros-noetic-qt-gui-cpp/recipe.yaml new file mode 100644 index 000000000..5da9237d2 --- /dev/null +++ b/recipes/ros-noetic-qt-gui-cpp/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-qt-gui-cpp + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/qt_gui_core-release.git + git_rev: release/noetic/qt_gui_cpp/0.4.2-1 + folder: ros-noetic-qt-gui-cpp/src/work + patches: + - patch/ros-noetic-qt-gui-cpp.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - pyqt-builder + - pyqt5-sip + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-pluginlib + - ros-noetic-python-qt-binding + - setuptools + - tinyxml + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-qt-gui + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-qt-gui-py-common/bld_catkin.bat b/recipes/ros-noetic-qt-gui-py-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-qt-gui-py-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-qt-gui-py-common/build_catkin.sh b/recipes/ros-noetic-qt-gui-py-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-qt-gui-py-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-qt-gui-py-common/recipe.yaml b/recipes/ros-noetic-qt-gui-py-common/recipe.yaml new file mode 100644 index 000000000..289894515 --- /dev/null +++ b/recipes/ros-noetic-qt-gui-py-common/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-qt-gui-py-common + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/qt_gui_core-release.git + git_rev: release/noetic/qt_gui_py_common/0.4.2-1 + folder: ros-noetic-qt-gui-py-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-qt-gui/bld_catkin.bat b/recipes/ros-noetic-qt-gui/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-qt-gui/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-qt-gui/build_catkin.sh b/recipes/ros-noetic-qt-gui/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-qt-gui/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-qt-gui/recipe.yaml b/recipes/ros-noetic-qt-gui/recipe.yaml new file mode 100644 index 000000000..70245c404 --- /dev/null +++ b/recipes/ros-noetic-qt-gui/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-qt-gui + version: 0.4.2 +source: + git_url: https://github.com/ros-gbp/qt_gui_core-release.git + git_rev: release/noetic/qt_gui/0.4.2-1 + folder: ros-noetic-qt-gui/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(build_platform != target_platform): pyqt-builder + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pyqt + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + - sel(build_platform == target_platform): pyqt-builder + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-qwt-dependency/bld_catkin.bat b/recipes/ros-noetic-qwt-dependency/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-qwt-dependency/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-qwt-dependency/build_catkin.sh b/recipes/ros-noetic-qwt-dependency/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-qwt-dependency/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-qwt-dependency/recipe.yaml b/recipes/ros-noetic-qwt-dependency/recipe.yaml new file mode 100644 index 000000000..81875cbcf --- /dev/null +++ b/recipes/ros-noetic-qwt-dependency/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-qwt-dependency + version: 1.1.1 +source: + git_url: https://github.com/ros-gbp/qwt_dependency-release.git + git_rev: release/noetic/qwt_dependency/1.1.1-2 + folder: ros-noetic-qwt-dependency/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-radar-msgs/bld_catkin.bat b/recipes/ros-noetic-radar-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-radar-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-radar-msgs/build_catkin.sh b/recipes/ros-noetic-radar-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-radar-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-radar-msgs/recipe.yaml b/recipes/ros-noetic-radar-msgs/recipe.yaml new file mode 100644 index 000000000..05fc5e79f --- /dev/null +++ b/recipes/ros-noetic-radar-msgs/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-radar-msgs + version: 0.1.0 +source: + git_url: https://github.com/ros2-gbp/radar_msgs-release.git + git_rev: release/noetic/radar_msgs/0.1.0-2 + folder: ros-noetic-radar-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-std-msgs + - ros-noetic-uuid-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - ros-noetic-uuid-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-random-numbers/bld_catkin.bat b/recipes/ros-noetic-random-numbers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-random-numbers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-random-numbers/build_catkin.sh b/recipes/ros-noetic-random-numbers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-random-numbers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-random-numbers/patch/ros-noetic-random-numbers.patch b/recipes/ros-noetic-random-numbers/patch/ros-noetic-random-numbers.patch new file mode 100644 index 000000000..fe9bf50d6 --- /dev/null +++ b/recipes/ros-noetic-random-numbers/patch/ros-noetic-random-numbers.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d23bb19..454a378 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,9 +18,12 @@ add_library(${PROJECT_NAME} + + target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES}) + ++set_target_properties(${PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) ++ + install(TARGETS ${PROJECT_NAME} + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +- LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) ++ LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} ++ RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) + + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) diff --git a/recipes/ros-noetic-random-numbers/recipe.yaml b/recipes/ros-noetic-random-numbers/recipe.yaml new file mode 100644 index 000000000..de90343c7 --- /dev/null +++ b/recipes/ros-noetic-random-numbers/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-random-numbers + version: 0.3.2 +source: + git_url: https://github.com/ros-gbp/random_numbers-release.git + git_rev: release/noetic/random_numbers/0.3.2-1 + folder: ros-noetic-random-numbers/src/work + patches: + - patch/ros-noetic-random-numbers.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-realsense2-description/bld_catkin.bat b/recipes/ros-noetic-realsense2-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-realsense2-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-realsense2-description/build_catkin.sh b/recipes/ros-noetic-realsense2-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-realsense2-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-realsense2-description/recipe.yaml b/recipes/ros-noetic-realsense2-description/recipe.yaml new file mode 100644 index 000000000..41e04ea78 --- /dev/null +++ b/recipes/ros-noetic-realsense2-description/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-realsense2-description + version: 2.3.2 +source: + git_url: https://github.com/IntelRealSense/realsense-ros-release.git + git_rev: release/noetic/realsense2_description/2.3.2-1 + folder: ros-noetic-realsense2-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-realtime-tools/bld_catkin.bat b/recipes/ros-noetic-realtime-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-realtime-tools/build_catkin.sh b/recipes/ros-noetic-realtime-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch b/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch new file mode 100644 index 000000000..685a082a6 --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/patch/ros-noetic-realtime-tools.patch @@ -0,0 +1,30 @@ +From f3d6ff3c30285d5d78953b5d9bf1f93f756beedc Mon Sep 17 00:00:00 2001 +From: Matt Reynolds +Date: Sun, 5 Apr 2020 14:20:47 -0400 +Subject: [PATCH] Add missing #include + +--- + include/realtime_tools/realtime_publisher.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/include/realtime_tools/realtime_publisher.h b/include/realtime_tools/realtime_publisher.h +index ceb0194..7fd9ea6 100644 +--- a/include/realtime_tools/realtime_publisher.h ++++ b/include/realtime_tools/realtime_publisher.h +@@ -38,12 +38,14 @@ + #ifndef REALTIME_TOOLS__REALTIME_PUBLISHER_H_ + #define REALTIME_TOOLS__REALTIME_PUBLISHER_H_ + +-#include + #include ++ ++#include + #include + #include + #include + #include ++#include + #include + + namespace realtime_tools { + diff --git a/recipes/ros-noetic-realtime-tools/recipe.yaml b/recipes/ros-noetic-realtime-tools/recipe.yaml new file mode 100644 index 000000000..b39de9422 --- /dev/null +++ b/recipes/ros-noetic-realtime-tools/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-realtime-tools + version: 1.16.1 +source: + git_url: https://github.com/ros-gbp/realtime_tools-release.git + git_rev: release/noetic/realtime_tools/1.16.1-1 + folder: ros-noetic-realtime-tools/src/work + patches: + - patch/ros-noetic-realtime-tools.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-resource-retriever/bld_catkin.bat b/recipes/ros-noetic-resource-retriever/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-resource-retriever/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-resource-retriever/build_catkin.sh b/recipes/ros-noetic-resource-retriever/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-resource-retriever/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-resource-retriever/recipe.yaml b/recipes/ros-noetic-resource-retriever/recipe.yaml new file mode 100644 index 000000000..ad66ddc45 --- /dev/null +++ b/recipes/ros-noetic-resource-retriever/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-resource-retriever + version: 1.12.7 +source: + git_url: https://github.com/ros-gbp/resource_retriever-release.git + git_rev: release/noetic/resource_retriever/1.12.7-1 + folder: ros-noetic-resource-retriever/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - libcurl + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosconsole + - ros-noetic-roslib + run: + - boost + - libcurl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosconsole + - ros-noetic-roslib + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rgbd-launch/bld_catkin.bat b/recipes/ros-noetic-rgbd-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rgbd-launch/build_catkin.sh b/recipes/ros-noetic-rgbd-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rgbd-launch/recipe.yaml b/recipes/ros-noetic-rgbd-launch/recipe.yaml new file mode 100644 index 000000000..448138f74 --- /dev/null +++ b/recipes/ros-noetic-rgbd-launch/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rgbd-launch + version: 2.4.0 +source: + git_url: https://github.com/ros-gbp/rgbd_launch-release.git + git_rev: release/noetic/rgbd_launch/2.4.0-1 + folder: ros-noetic-rgbd-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-body-filter/bld_catkin.bat b/recipes/ros-noetic-robot-body-filter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-body-filter/build_catkin.sh b/recipes/ros-noetic-robot-body-filter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-body-filter/recipe.yaml b/recipes/ros-noetic-robot-body-filter/recipe.yaml new file mode 100644 index 000000000..b0a34179d --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-robot-body-filter + version: 1.3.2 +source: + git_url: https://github.com/peci1/robot_body_filter-release.git + git_rev: release/noetic/robot_body_filter/1.3.2-1 + folder: ros-noetic-robot-body-filter/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-fcl + - ros-noetic-filters + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-perception + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + run: + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-fcl + - ros-noetic-filters + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-message-runtime + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-perception + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-localization/bld_catkin.bat b/recipes/ros-noetic-robot-localization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-localization/build_catkin.sh b/recipes/ros-noetic-robot-localization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-localization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch new file mode 100644 index 000000000..42fea44f3 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cc7f334..bb20912 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -49,9 +49,6 @@ if(NOT EIGEN3_FOUND) + set(EIGEN_PACKAGE Eigen) + endif() + +-if(NOT MSVC) +- set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Werror") +-endif() + add_definitions(-DEIGEN_NO_DEBUG -DEIGEN_MPL2_ONLY) + + set(ROSLINT_CPP_OPTS "--filter=-build/c++11,-runtime/references") diff --git a/recipes/ros-noetic-robot-localization/recipe.yaml b/recipes/ros-noetic-robot-localization/recipe.yaml new file mode 100644 index 000000000..bbb86376c --- /dev/null +++ b/recipes/ros-noetic-robot-localization/recipe.yaml @@ -0,0 +1,99 @@ +package: + name: ros-noetic-robot-localization + version: 2.7.5 +source: + git_url: https://github.com/cra-ros-pkg/robot_localization-release.git + git_rev: release/noetic/robot_localization/2.7.5-1 + folder: ros-noetic-robot-localization/src/work + patches: + - patch/ros-noetic-robot-localization.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - eigen + - geographiclib-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + run: + - eigen + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-state-publisher/build_catkin.sh b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-state-publisher/recipe.yaml b/recipes/ros-noetic-robot-state-publisher/recipe.yaml new file mode 100644 index 000000000..f29949657 --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-robot-state-publisher + version: 1.15.2 +source: + git_url: https://github.com/ros-gbp/robot_state_publisher-release.git + git_rev: release/noetic/robot_state_publisher/1.15.2-1 + folder: ros-noetic-robot-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-kdl-parser + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - urdfdom_headers + run: + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-kdl-parser + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostime + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-kdl + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot/bld_catkin.bat b/recipes/ros-noetic-robot/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot/build_catkin.sh b/recipes/ros-noetic-robot/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot/recipe.yaml b/recipes/ros-noetic-robot/recipe.yaml new file mode 100644 index 000000000..35fa01b1c --- /dev/null +++ b/recipes/ros-noetic-robot/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-robot + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/robot/1.5.0-1 + folder: ros-noetic-robot/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-diagnostics + - ros-noetic-executive-smach + - ros-noetic-filters + - ros-noetic-geometry + - ros-noetic-joint-state-publisher + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-ros-base + - ros-noetic-urdf + - ros-noetic-urdf-parser-plugin + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-babel-fish-test-msgs/bld_catkin.bat b/recipes/ros-noetic-ros-babel-fish-test-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish-test-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-babel-fish-test-msgs/build_catkin.sh b/recipes/ros-noetic-ros-babel-fish-test-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish-test-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-babel-fish-test-msgs/recipe.yaml b/recipes/ros-noetic-ros-babel-fish-test-msgs/recipe.yaml new file mode 100644 index 000000000..03967ab5f --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish-test-msgs/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-ros-babel-fish-test-msgs + version: 0.9.3 +source: + git_url: https://github.com/StefanFabian/ros_babel_fish-release.git + git_rev: release/noetic/ros_babel_fish_test_msgs/0.9.3-1 + folder: ros-noetic-ros-babel-fish-test-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat b/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-babel-fish/build_catkin.sh b/recipes/ros-noetic-ros-babel-fish/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch b/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch new file mode 100644 index 000000000..f7ae0675d --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/patch/ros-noetic-ros-babel-fish.patch @@ -0,0 +1,533 @@ +diff --git a/ros_babel_fish/CMakeLists.txt b/ros_babel_fish/CMakeLists.txt +index 45e26fe..d625e0f 100644 +--- a/ros_babel_fish/CMakeLists.txt ++++ b/ros_babel_fish/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.5.1) ++cmake_minimum_required(VERSION 3.10.2) + project(ros_babel_fish VERSION 0.9.1) + + # If the value doesn't fit, an exception is thrown in any case because that could result in unexpected behavior and can not be ignored lightly +@@ -9,9 +9,9 @@ if (WARN_ON_INCOMPATIBLE_TYPE) + endif () + + ## Compile as C++11, supported in ROS Kinetic and newer +-add_compile_options(-std=c++11) ++set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) + +-add_definitions(-Wall -Wextra) + + #set(CMAKE_BUILD_TYPE "Debug") + +@@ -20,6 +20,7 @@ add_definitions(-Wall -Wextra) + ## is used, also find other catkin packages + find_package(catkin REQUIRED COMPONENTS actionlib roscpp roslib std_msgs) + find_package(OpenSSL REQUIRED) ++find_package(Boost REQUIRED COMPONENTS filesystem) + + ################################### + ## catkin specific configuration ## +@@ -34,7 +35,7 @@ catkin_package( + INCLUDE_DIRS include + LIBRARIES ${PROJECT_NAME} + CATKIN_DEPENDS actionlib roscpp roslib +- DEPENDS OPENSSL ++ DEPENDS OPENSSL Boost + ) + + ########### +@@ -46,13 +47,13 @@ catkin_package( + include_directories( + include + ${catkin_INCLUDE_DIRS} ++ ${Boost_INCLUDE_DIRS} + ${OPENSSL_INCLUDE_DIR} + ) + + set(LIBRARIES + ${catkin_LIBRARIES} + OpenSSL::SSL +- stdc++fs + ) + + set(SOURCES +diff --git a/ros_babel_fish/examples/rosbag_frame_ids.cpp b/ros_babel_fish/examples/rosbag_frame_ids.cpp +index 1aae260..ab0f36e 100644 +--- a/ros_babel_fish/examples/rosbag_frame_ids.cpp ++++ b/ros_babel_fish/examples/rosbag_frame_ids.cpp +@@ -47,7 +47,7 @@ public: + + const uint8_t *buffer() const final + { +- if ( buffer_.empty() and size() > 0 ) ++ if ( buffer_.empty() && size() > 0 ) + { + buffer_.resize( size()); + ros::serialization::OStream stream( buffer_.data(), buffer_.size()); +diff --git a/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h b/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h +index 8714b5b..a7c1580 100644 +--- a/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h ++++ b/ros_babel_fish/include/ros_babel_fish/actionlib/client/babel_fish_action_client.h +@@ -179,20 +179,20 @@ private: + // Start publishers and subscribers + goal_pub_ = advertiseGoal( description, "goal", static_cast(pub_queue_size), + boost::bind( &ConnectionMonitor::goalConnectCallback, connection_monitor_, +- _1 ), ++ boost::placeholders::_1 ), + boost::bind( &ConnectionMonitor::goalDisconnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + queue ); + cancel_pub_ = + queue_advertise( "cancel", static_cast(pub_queue_size), + boost::bind( &ConnectionMonitor::cancelConnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + boost::bind( &ConnectionMonitor::cancelDisconnectCallback, +- connection_monitor_, _1 ), ++ connection_monitor_, boost::placeholders::_1 ), + queue ); + +- manager_.registerSendGoalFunc( boost::bind( &ActionClientT::sendGoalFunc, this, _1 )); +- manager_.registerCancelFunc( boost::bind( &ActionClientT::sendCancelFunc, this, _1 )); ++ manager_.registerSendGoalFunc( boost::bind( &ActionClientT::sendGoalFunc, this, boost::placeholders::_1 )); ++ manager_.registerCancelFunc( boost::bind( &ActionClientT::sendCancelFunc, this, boost::placeholders::_1 )); + } + + ros::Publisher advertiseGoal( const ::ros_babel_fish::MessageDescription::ConstPtr &description, +@@ -235,7 +235,7 @@ private: + ops.datatype = ros::message_traits::datatype(); + ops.helper = ros::SubscriptionCallbackHelperPtr( + new ros::SubscriptionCallbackHelperT &>( +- boost::bind( fp, obj, _1 ) ++ boost::bind( fp, obj, boost::placeholders::_1 ) + ) + ); + return n_.subscribe( ops ); +diff --git a/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h b/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h +index 29e4db8..ed69bdf 100644 +--- a/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h ++++ b/ros_babel_fish/include/ros_babel_fish/actionlib/client/simple_action_client.h +@@ -319,8 +319,8 @@ void SimpleActionClient<::ros_babel_fish::BabelFishAction_ > + cur_simple_state_ = SimpleGoalState::PENDING; + + // Send the goal to the ActionServer +- gh_ = ac_->sendGoal( goal, boost::bind( &SimpleActionClientT::handleTransition, this, _1 ), +- boost::bind( &SimpleActionClientT::handleFeedback, this, _1, _2 )); ++ gh_ = ac_->sendGoal( goal, boost::bind( &SimpleActionClientT::handleTransition, this, boost::placeholders::_1 ), ++ boost::bind( &SimpleActionClientT::handleFeedback, this, boost::placeholders::_1, boost::placeholders::_2 )); + } + + template +diff --git a/ros_babel_fish/include/ros_babel_fish/message.h b/ros_babel_fish/include/ros_babel_fish/message.h +index 278378c..50d36ec 100644 +--- a/ros_babel_fish/include/ros_babel_fish/message.h ++++ b/ros_babel_fish/include/ros_babel_fish/message.h +@@ -8,7 +8,16 @@ + #include "ros_babel_fish/exceptions/babel_fish_exception.h" + #include + ++#include + #include ++#include ++ ++#ifdef _WIN32 ++#include ++typedef SSIZE_T ssize_t; ++#else ++#include ++#endif + + namespace ros_babel_fish + { +@@ -64,7 +73,7 @@ public: + /*! + * Alias for _stream(). Removed in future release. + */ +- __attribute_deprecated__ const uint8_t *data() const { return _stream(); } ++ const uint8_t *data() const { return _stream(); } + + /*! + * @return Size of the message in bytes if serialized in ROS message binary format +@@ -74,7 +83,7 @@ public: + /*! + * Alias for _sizeInBytes(). Removed in future release. + */ +- __attribute_deprecated__ size_t size() const { return _sizeInBytes(); } ++ size_t size() const { return _sizeInBytes(); } + + /*! + * @return Whether or not the message is detached from the stream. If false, the message is not fully copied and still relies on the translated message. +diff --git a/ros_babel_fish/include/ros_babel_fish/messages/array_message.h b/ros_babel_fish/include/ros_babel_fish/messages/array_message.h +index 0dfd852..cc65e00 100644 +--- a/ros_babel_fish/include/ros_babel_fish/messages/array_message.h ++++ b/ros_babel_fish/include/ros_babel_fish/messages/array_message.h +@@ -117,7 +117,7 @@ public: + * Alias for assign + * Deprecated, will be removed in a future release + */ +- __attribute_deprecated__ void setItem( size_t index, ArgumentType value ) { assign( index, value ); } ++ void setItem( size_t index, ArgumentType value ) { assign( index, value ); } + + void push_back( ArgumentType value ) + { +@@ -139,7 +139,7 @@ public: + * Alias for push_back + * Deprecated, will be removed in a future release + */ +- __attribute_deprecated__ void addItem( ArgumentType value ) { push_back( value ); } ++ void addItem( ArgumentType value ) { push_back( value ); } + + size_t _sizeInBytes() const override + { +@@ -219,41 +219,6 @@ protected: + }; + + +-//! Specialization for Message +-template<> +-ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, +- const uint8_t *stream, bool ); +- +-template<> +-ArrayMessage::~ArrayMessage(); +- +-template<> +-Message &ArrayMessage::operator[]( size_t index ); +- +-template<> +-const Message &ArrayMessage::operator[]( size_t index ) const; +- +-template<> +-void ArrayMessage::assign( size_t index, Message *value ); +- +-template<> +-size_t ArrayMessage::_sizeInBytes() const; +- +-template<> +-size_t ArrayMessage::writeToStream( uint8_t *stream ) const; +- +-template<> +-inline void ArrayMessage::detachFromStream() +-{ +- /* So compiler won't complain. This specialization can not be from stream anyway. */ +-} +- +-template<> +-ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ); +- +-template<> +-Message *ArrayMessage::clone() const; +- + //! Specialization for CompoundMessage + class CompoundArrayMessage : public ArrayMessage + { +@@ -287,6 +252,108 @@ private: + MessageTemplate::ConstPtr msg_template_; + }; + ++ ++//! Specialization for Message ++template<> ++inline ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, const uint8_t *stream, ++ bool ) ++ : ArrayMessageBase( element_type, length, fixed_length, stream ), values_( 0 ), from_stream_( false ) { } ++ ++template<> ++inline ArrayMessage::~ArrayMessage() ++{ ++ for ( auto &entry : values_ ) ++ { ++ delete entry; ++ } ++ values_.clear(); ++} ++ ++template<> ++inline Message &ArrayMessage::operator[]( size_t index ) ++{ ++ return *values_[index]; ++} ++ ++template<> ++inline const Message &ArrayMessage::operator[]( size_t index ) const ++{ ++ return *values_[index]; ++} ++ ++template<> ++inline void ArrayMessage::assign( size_t index, Message *value ) ++{ ++ if ( index >= length_ ) ++ throw BabelFishException( "Index in setItem was out of bounds! Maybe you meant push_back?" ); ++ delete values_[index]; ++ values_[index] = value; ++} ++ ++template<> ++inline size_t ArrayMessage::_sizeInBytes() const ++{ ++ size_t result = (fixed_length_ ? 0 : 4); ++ for ( auto &value : values_ ) ++ { ++ result += value->_sizeInBytes(); ++ } ++ return result; ++} ++ ++template<> ++inline size_t ArrayMessage::writeToStream( uint8_t *stream ) const ++{ ++ size_t offset = 0; ++ if ( !fixed_length_ ) ++ { ++ *reinterpret_cast(stream) = length_; ++ offset = 4; ++ } ++ for ( auto &value : values_ ) ++ { ++ offset += value->writeToStream( stream + offset ); ++ } ++ return offset; ++} ++ ++template<> ++inline ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ) ++{ ++ if ( type() != other.type() || ++ (elementType() == MessageTypes::Compound && ++ as().elementDataType() != other.as().elementDataType())) ++ throw BabelFishException( "Can not assign incompatible ArrayMessage! They need to have exactly the same type!" ); ++ for ( auto &entry : values_ ) ++ { ++ delete entry; ++ } ++ values_.clear(); ++ values_.reserve( other._sizeInBytes()); ++ std::transform( other.values_.begin(), other.values_.end(), std::back_inserter( values_ ), ++ []( Message *m ) { return m->clone(); } ); ++ length_ = other.length_; ++ fixed_length_ = other.fixed_length_; ++ stream_ = other.stream_; ++ return *this; ++} ++ ++template<> ++inline Message *ArrayMessage::clone() const ++{ ++ auto result = new ArrayMessage( elementType(), length(), isFixedSize(), stream_ ); ++ result->values_.clear(); ++ std::transform( values_.begin(), values_.end(), std::back_inserter( result->values_ ), ++ []( Message *m ) { return m->clone(); } ); ++ return result; ++} ++ ++template<> ++inline void ArrayMessage::detachFromStream() ++{ ++ /* So compiler won't complain. This specialization can not be from stream anyway. */ ++} ++ + //! Specialization for Bool + template<> + bool ArrayMessage::operator[]( size_t index ); +diff --git a/ros_babel_fish/src/generation/description_provider.cpp b/ros_babel_fish/src/generation/description_provider.cpp +index 1f493bd..c3fd3c5 100644 +--- a/ros_babel_fish/src/generation/description_provider.cpp ++++ b/ros_babel_fish/src/generation/description_provider.cpp +@@ -160,8 +160,8 @@ MessageDescription::ConstPtr DescriptionProvider::getMessageDescriptionImpl( con + specs.push_back( buffer ); + + // Register all message dependencies +- bool registered[specs.size()]; +- std::fill_n( registered, specs.size(), false ); ++ std::vector registered(specs.size()); ++ std::fill_n(registered.begin(), specs.size(), false ); + bool new_registered = true; + while ( new_registered ) + { +@@ -451,8 +451,11 @@ DescriptionProvider::MessageSpec DescriptionProvider::createSpec( const std::str + std::regex_search( val.cbegin(), val.cend(), match, strip_comment_regex ); + val = match.str( 1 ); + } +- spec.constants.push_back( +- MessageSpec::Constant{ .type = constant_type, .name = name, .val = val } ); ++ MessageSpec::Constant constant; ++ constant.type = constant_type; ++ constant.name = name; ++ constant.val = val; ++ spec.constants.push_back(constant); + } + else if ( std::regex_search( first, last, match, field_regex ) && match.size() == 4 ) + { +diff --git a/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp b/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp +index d724b43..f338bf8 100644 +--- a/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp ++++ b/ros_babel_fish/src/generation/providers/integrated_description_provider.cpp +@@ -5,11 +5,11 @@ + + #include + +-#include ++#include + #include + #include + +-namespace fs = std::experimental::filesystem; ++namespace fs = boost::filesystem; + + namespace ros_babel_fish + { +@@ -133,7 +133,7 @@ MessageDescription::ConstPtr IntegratedDescriptionProvider::getMessageDescriptio + } + + // Load message specification from file +- std::ifstream file_input( message_path ); ++ std::ifstream file_input( message_path.string() ); + file_input.seekg( 0, std::ios::end ); + std::string specification; + specification.resize( file_input.tellg()); +@@ -177,7 +177,7 @@ ServiceDescription::ConstPtr IntegratedDescriptionProvider::getServiceDescriptio + } + + // Load service specification from file +- std::ifstream file_input( service_path ); ++ std::ifstream file_input( service_path.string() ); + file_input.seekg( 0, std::ios::end ); + std::string spec; + spec.resize( file_input.tellg()); +diff --git a/ros_babel_fish/src/messages/array_message.cpp b/ros_babel_fish/src/messages/array_message.cpp +index c1c302b..f79e902 100644 +--- a/ros_babel_fish/src/messages/array_message.cpp ++++ b/ros_babel_fish/src/messages/array_message.cpp +@@ -11,100 +11,6 @@ namespace ros_babel_fish + //! ============== Message Specialization ============= + //! =================================================== + +-template<> +-ArrayMessage::ArrayMessage( MessageType element_type, size_t length, bool fixed_length, const uint8_t *stream, +- bool ) +- : ArrayMessageBase( element_type, length, fixed_length, stream ), values_( 0 ), from_stream_( false ) { } +- +-template<> +-ArrayMessage::~ArrayMessage() +-{ +- for ( auto &entry : values_ ) +- { +- delete entry; +- } +- values_.clear(); +-} +- +-template<> +-Message &ArrayMessage::operator[]( size_t index ) +-{ +- return *values_[index]; +-} +- +-template<> +-const Message &ArrayMessage::operator[]( size_t index ) const +-{ +- return *values_[index]; +-} +- +-template<> +-void ArrayMessage::assign( size_t index, Message *value ) +-{ +- if ( index >= length_ ) +- throw BabelFishException( "Index in setItem was out of bounds! Maybe you meant push_back?" ); +- delete values_[index]; +- values_[index] = value; +-} +- +-template<> +-size_t ArrayMessage::_sizeInBytes() const +-{ +- size_t result = (fixed_length_ ? 0 : 4); +- for ( auto &value : values_ ) +- { +- result += value->_sizeInBytes(); +- } +- return result; +-} +- +-template<> +-size_t ArrayMessage::writeToStream( uint8_t *stream ) const +-{ +- size_t offset = 0; +- if ( !fixed_length_ ) +- { +- *reinterpret_cast(stream) = length_; +- offset = 4; +- } +- for ( auto &value : values_ ) +- { +- offset += value->writeToStream( stream + offset ); +- } +- return offset; +-} +- +-template<> +-ArrayMessage &ArrayMessage::operator=( const ArrayMessage &other ) +-{ +- if ( type() != other.type() || +- (elementType() == MessageTypes::Compound && +- as().elementDataType() != other.as().elementDataType())) +- throw BabelFishException( "Can not assign incompatible ArrayMessage! They need to have exactly the same type!" ); +- for ( auto &entry : values_ ) +- { +- delete entry; +- } +- values_.clear(); +- values_.reserve( other._sizeInBytes()); +- std::transform( other.values_.begin(), other.values_.end(), std::back_inserter( values_ ), +- []( Message *m ) { return m->clone(); } ); +- length_ = other.length_; +- fixed_length_ = other.fixed_length_; +- stream_ = other.stream_; +- return *this; +-} +- +-template<> +-Message *ArrayMessage::clone() const +-{ +- auto result = new ArrayMessage( elementType(), length(), isFixedSize(), stream_ ); +- result->values_.clear(); +- std::transform( values_.begin(), values_.end(), std::back_inserter( result->values_ ), +- []( Message *m ) { return m->clone(); } ); +- return result; +-} +- + //! =================================================== + //! =============== Bool Specialization =============== + //! =================================================== +@@ -521,6 +427,12 @@ size_t ArrayMessage::writeToStream( uint8_t *stream ) const + return length; + } + ++// Explicit template instantiation; ++template class ArrayMessage; ++template class ArrayMessage; ++template class ArrayMessage; ++template class ArrayMessage; ++ + //! =================================================== + //! ================== CompoundArray ================== + //! =================================================== +diff --git a/ros_babel_fish/src/messages/value_message.cpp b/ros_babel_fish/src/messages/value_message.cpp +index 2f640e3..512fe34 100644 +--- a/ros_babel_fish/src/messages/value_message.cpp ++++ b/ros_babel_fish/src/messages/value_message.cpp +@@ -180,4 +180,11 @@ size_t ValueMessage::writeToStream( uint8_t *stream ) const + memcpy( stream, value_.data(), value_.length()); + return value_.length() + sizeof( uint32_t ); + } ++ ++// Explicit template instantiation; ++template class ValueMessage; ++template class ValueMessage; ++template class ValueMessage; ++template class ValueMessage; ++ + } diff --git a/recipes/ros-noetic-ros-babel-fish/recipe.yaml b/recipes/ros-noetic-ros-babel-fish/recipe.yaml new file mode 100644 index 000000000..5d452a7d9 --- /dev/null +++ b/recipes/ros-noetic-ros-babel-fish/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-ros-babel-fish + version: 0.9.3 +source: + git_url: https://github.com/StefanFabian/ros_babel_fish-release.git + git_rev: release/noetic/ros_babel_fish/0.9.3-1 + folder: ros-noetic-ros-babel-fish/src/work + patches: + - patch/ros-noetic-ros-babel-fish.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - openssl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-ros-babel-fish-test-msgs + - ros-noetic-rosapi + - ros-noetic-roscpp + - ros-noetic-roscpp-tutorials + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + run: + - openssl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-roscpp + - ros-noetic-roslib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-base/bld_catkin.bat b/recipes/ros-noetic-ros-base/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-base/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-base/build_catkin.sh b/recipes/ros-noetic-ros-base/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-base/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-base/recipe.yaml b/recipes/ros-noetic-ros-base/recipe.yaml new file mode 100644 index 000000000..75bc675b4 --- /dev/null +++ b/recipes/ros-noetic-ros-base/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-ros-base + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/ros_base/1.5.0-1 + folder: ros-noetic-ros-base/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-bond-core + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet-core + - ros-noetic-ros-core + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-comm/bld_catkin.bat b/recipes/ros-noetic-ros-comm/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-comm/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-comm/build_catkin.sh b/recipes/ros-noetic-ros-comm/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-comm/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-comm/recipe.yaml b/recipes/ros-noetic-ros-comm/recipe.yaml new file mode 100644 index 000000000..c2b9b1cc7 --- /dev/null +++ b/recipes/ros-noetic-ros-comm/recipe.yaml @@ -0,0 +1,94 @@ +package: + name: ros-noetic-ros-comm + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/ros_comm/1.16.0-1 + folder: ros-noetic-ros-comm/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-control/bld_catkin.bat b/recipes/ros-noetic-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-control/build_catkin.sh b/recipes/ros-noetic-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-control/recipe.yaml b/recipes/ros-noetic-ros-control/recipe.yaml new file mode 100644 index 000000000..7c25bd68f --- /dev/null +++ b/recipes/ros-noetic-ros-control/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-ros-control + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/ros_control/0.20.0-1 + folder: ros-noetic-ros-control/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-combined-robot-hw + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-realtime-tools + - ros-noetic-transmission-interface + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-controllers/bld_catkin.bat b/recipes/ros-noetic-ros-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-controllers/build_catkin.sh b/recipes/ros-noetic-ros-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-controllers/recipe.yaml b/recipes/ros-noetic-ros-controllers/recipe.yaml new file mode 100644 index 000000000..3a438c891 --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-ros-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/ros_controllers/0.21.2-1 + folder: ros-noetic-ros-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ackermann-steering-controller + - ros-noetic-diff-drive-controller + - ros-noetic-effort-controllers + - ros-noetic-force-torque-sensor-controller + - ros-noetic-forward-command-controller + - ros-noetic-gripper-action-controller + - ros-noetic-imu-sensor-controller + - ros-noetic-joint-state-controller + - ros-noetic-joint-trajectory-controller + - ros-noetic-position-controllers + - ros-noetic-velocity-controllers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-core/bld_catkin.bat b/recipes/ros-noetic-ros-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-core/build_catkin.sh b/recipes/ros-noetic-ros-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-core/recipe.yaml b/recipes/ros-noetic-ros-core/recipe.yaml new file mode 100644 index 000000000..9666b5591 --- /dev/null +++ b/recipes/ros-noetic-ros-core/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-ros-core + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/ros_core/1.5.0-1 + folder: ros-noetic-ros-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-cmake-modules + - ros-noetic-common-msgs + - ros-noetic-gencpp + - ros-noetic-geneus + - ros-noetic-genlisp + - ros-noetic-genmsg + - ros-noetic-gennodejs + - ros-noetic-genpy + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-ros + - ros-noetic-ros-comm + - ros-noetic-rosbag-migration-rule + - ros-noetic-rosconsole + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp-core + - ros-noetic-rosgraph-msgs + - ros-noetic-roslisp + - ros-noetic-rospack + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-environment/bld_catkin.bat b/recipes/ros-noetic-ros-environment/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-environment/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-environment/build_catkin.sh b/recipes/ros-noetic-ros-environment/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-environment/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-environment/patch/ros-noetic-ros-environment.patch b/recipes/ros-noetic-ros-environment/patch/ros-noetic-ros-environment.patch new file mode 100644 index 000000000..19305bed3 --- /dev/null +++ b/recipes/ros-noetic-ros-environment/patch/ros-noetic-ros-environment.patch @@ -0,0 +1,10 @@ +diff --git a/env-hooks/1.ros_package_path.sh.em b/env-hooks/1.ros_package_path.sh.em +index 2031fde..3bd03c3 100644 +--- a/env-hooks/1.ros_package_path.sh.em ++++ b/env-hooks/1.ros_package_path.sh.em +@@ -23,4 +23,4 @@ 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="`python -c \"$PYTHON_CODE_BUILD_ROS_PACKAGE_PATH\"`" diff --git a/recipes/ros-noetic-ros-environment/recipe.yaml b/recipes/ros-noetic-ros-environment/recipe.yaml new file mode 100644 index 000000000..b2cd9b064 --- /dev/null +++ b/recipes/ros-noetic-ros-environment/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-ros-environment + version: 1.3.2 +source: + git_url: https://github.com/ros-gbp/ros_environment-release.git + git_rev: release/noetic/ros_environment/1.3.2-1 + folder: ros-noetic-ros-environment/src/work + patches: + - patch/ros-noetic-ros-environment.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-numpy/bld_catkin.bat b/recipes/ros-noetic-ros-numpy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-numpy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-numpy/build_catkin.sh b/recipes/ros-noetic-ros-numpy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-numpy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-numpy/patch/ros-noetic-ros-numpy.patch b/recipes/ros-noetic-ros-numpy/patch/ros-noetic-ros-numpy.patch new file mode 100644 index 000000000..d0a6e72c7 --- /dev/null +++ b/recipes/ros-noetic-ros-numpy/patch/ros-noetic-ros-numpy.patch @@ -0,0 +1,38 @@ +diff --git a/setup.py b/setup.py +index bd6536a..6d64e63 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,6 +1,6 @@ + ## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD + +-from distutils.core import setup ++from setuptools import setup + from catkin_pkg.python_setup import generate_distutils_setup + + # fetch values from package.xml +diff --git a/src/ros_numpy/point_cloud2.py b/src/ros_numpy/point_cloud2.py +index a4e20ec..b9206a5 100755 +--- a/src/ros_numpy/point_cloud2.py ++++ b/src/ros_numpy/point_cloud2.py +@@ -221,7 +221,7 @@ def split_rgb_field(cloud_arr): + new_cloud_arr[field_name] = cloud_arr[field_name] + return new_cloud_arr + +-def get_xyz_points(cloud_array, remove_nans=True, dtype=np.float): ++def get_xyz_points(cloud_array, remove_nans=True, dtype=np.float64): + '''Pulls out x, y, and z columns from the cloud recordarray, and returns + a 3xN matrix. + ''' +diff --git a/src/ros_numpy/registry.py b/src/ros_numpy/registry.py +index 5442b93..2483293 100644 +--- a/src/ros_numpy/registry.py ++++ b/src/ros_numpy/registry.py +@@ -27,7 +27,7 @@ def numpify(msg, *args, **kwargs): + return + + conv = _to_numpy.get((msg.__class__, False)) +- if not conv and isinstance(msg, collections.Sequence): ++ if not conv and isinstance(msg, collections.abc.Sequence): + if not msg: + raise ValueError("Cannot determine the type of an empty Collection") + conv = _to_numpy.get((msg[0].__class__, True)) diff --git a/recipes/ros-noetic-ros-numpy/recipe.yaml b/recipes/ros-noetic-ros-numpy/recipe.yaml new file mode 100644 index 000000000..0550e20a0 --- /dev/null +++ b/recipes/ros-noetic-ros-numpy/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-ros-numpy + version: 0.0.5 +source: + git_url: https://github.com/eric-wieser/ros_numpy-release.git + git_rev: release/noetic/ros_numpy/0.0.5-2 + folder: ros-noetic-ros-numpy/src/work + patches: + - patch/ros-noetic-ros-numpy.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-tutorials/bld_catkin.bat b/recipes/ros-noetic-ros-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-tutorials/build_catkin.sh b/recipes/ros-noetic-ros-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-tutorials/recipe.yaml b/recipes/ros-noetic-ros-tutorials/recipe.yaml new file mode 100644 index 000000000..6dc494846 --- /dev/null +++ b/recipes/ros-noetic-ros-tutorials/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-ros-tutorials + version: 0.10.2 +source: + git_url: https://github.com/ros-gbp/ros_tutorials-release.git + git_rev: release/noetic/ros_tutorials/0.10.2-1 + folder: ros-noetic-ros-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp-tutorials + - ros-noetic-rospy-tutorials + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp-tutorials + - ros-noetic-rospy-tutorials + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros/bld_catkin.bat b/recipes/ros-noetic-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros/build_catkin.sh b/recipes/ros-noetic-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros/recipe.yaml b/recipes/ros-noetic-ros/recipe.yaml new file mode 100644 index 000000000..043999640 --- /dev/null +++ b/recipes/ros-noetic-ros/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-ros + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/ros/1.15.8-1 + folder: ros-noetic-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-mk + - ros-noetic-rosbash + - ros-noetic-rosboost-cfg + - ros-noetic-rosbuild + - ros-noetic-rosclean + - ros-noetic-roscreate + - ros-noetic-roslang + - ros-noetic-roslib + - ros-noetic-rosmake + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-mk + - ros-noetic-rosbash + - ros-noetic-rosboost-cfg + - ros-noetic-rosbuild + - ros-noetic-rosclean + - ros-noetic-roscreate + - ros-noetic-roslang + - ros-noetic-roslib + - ros-noetic-rosmake + - ros-noetic-rosunit + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosapi/bld_catkin.bat b/recipes/ros-noetic-rosapi/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosapi/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosapi/build_catkin.sh b/recipes/ros-noetic-rosapi/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosapi/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosapi/recipe.yaml b/recipes/ros-noetic-rosapi/recipe.yaml new file mode 100644 index 000000000..5fc1ddc16 --- /dev/null +++ b/recipes/ros-noetic-rosapi/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rosapi + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosapi/0.11.17-1 + folder: ros-noetic-rosapi/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rosbridge-library + - ros-noetic-rosgraph + - ros-noetic-rosnode + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosauth/bld_catkin.bat b/recipes/ros-noetic-rosauth/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosauth/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosauth/build_catkin.sh b/recipes/ros-noetic-rosauth/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosauth/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosauth/recipe.yaml b/recipes/ros-noetic-rosauth/recipe.yaml new file mode 100644 index 000000000..3f87cd7de --- /dev/null +++ b/recipes/ros-noetic-rosauth/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rosauth + version: 1.0.1 +source: + git_url: https://github.com/gt-rail-release/rosauth-release.git + git_rev: release/noetic/rosauth/1.0.1-1 + folder: ros-noetic-rosauth/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - openssl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbag-migration-rule/bld_catkin.bat b/recipes/ros-noetic-rosbag-migration-rule/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbag-migration-rule/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbag-migration-rule/build_catkin.sh b/recipes/ros-noetic-rosbag-migration-rule/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbag-migration-rule/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbag-migration-rule/recipe.yaml b/recipes/ros-noetic-rosbag-migration-rule/recipe.yaml new file mode 100644 index 000000000..49074f87f --- /dev/null +++ b/recipes/ros-noetic-rosbag-migration-rule/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-rosbag-migration-rule + version: 1.0.1 +source: + git_url: https://github.com/ros-gbp/rosbag_migration_rule-release.git + git_rev: release/noetic/rosbag_migration_rule/1.0.1-1 + folder: ros-noetic-rosbag-migration-rule/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbag-storage/bld_catkin.bat b/recipes/ros-noetic-rosbag-storage/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbag-storage/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbag-storage/build_catkin.sh b/recipes/ros-noetic-rosbag-storage/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbag-storage/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbag-storage/recipe.yaml b/recipes/ros-noetic-rosbag-storage/recipe.yaml new file mode 100644 index 000000000..3f61d35fd --- /dev/null +++ b/recipes/ros-noetic-rosbag-storage/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-rosbag-storage + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosbag_storage/1.16.0-1 + folder: ros-noetic-rosbag-storage/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - bzip2 + - console_bridge + - gpgme + - numpy + - openssl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-pluginlib + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-roslz4 + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-std-msgs + run: + - boost-cpp + - bzip2 + - console_bridge + - gpgme + - openssl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-pluginlib + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-roslz4 + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbag/bld_catkin.bat b/recipes/ros-noetic-rosbag/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbag/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbag/build_catkin.sh b/recipes/ros-noetic-rosbag/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbag/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbag/patch/ros-noetic-rosbag.patch b/recipes/ros-noetic-rosbag/patch/ros-noetic-rosbag.patch new file mode 100644 index 000000000..2652f7370 --- /dev/null +++ b/recipes/ros-noetic-rosbag/patch/ros-noetic-rosbag.patch @@ -0,0 +1,25 @@ +diff --git a/tools/rosbag/src/encrypt.cpp b/tools/rosbag/src/encrypt.cpp +index da4ece4c29..b037957fc0 100644 +--- a/tools/rosbag/src/encrypt.cpp ++++ b/tools/rosbag/src/encrypt.cpp +@@ -36,7 +36,7 @@ + + #include + #include +-#include ++#include + #include + + #include +@@ -161,9 +161,9 @@ int encrypt(EncryptorOptions const& options) + outbag.setEncryptorPlugin(options.plugin, options.param); + outbag.setCompression(options.compression); + rosbag::View view(inbag); +- boost::scoped_ptr progress; ++ boost::scoped_ptr progress; + if (!options.quiet) +- progress.reset(new boost::progress_display(view.size(), std::cout, "Progress:\n ", " ", " ")); ++ progress.reset(new boost::timer::progress_display(view.size(), std::cout, "Progress:\n ", " ", " ")); + for (rosbag::View::const_iterator it = view.begin(); it != view.end(); ++it) + { + outbag.write(it->getTopic(), it->getTime(), *it, it->getConnectionHeader()); diff --git a/recipes/ros-noetic-rosbag/recipe.yaml b/recipes/ros-noetic-rosbag/recipe.yaml new file mode 100644 index 000000000..33aaae317 --- /dev/null +++ b/recipes/ros-noetic-rosbag/recipe.yaml @@ -0,0 +1,77 @@ +package: + name: ros-noetic-rosbag + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosbag/1.16.0-1 + folder: ros-noetic-rosbag/src/work + patches: + - patch/ros-noetic-rosbag.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pillow + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rosbag-storage + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + run: + - boost-cpp + - pycryptodome + - pycryptodomex + - python + - python-gnupg + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - ros-noetic-genpy + - ros-noetic-rosbag-storage + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbash-params/bld_catkin.bat b/recipes/ros-noetic-rosbash-params/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbash-params/build_catkin.sh b/recipes/ros-noetic-rosbash-params/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbash-params/recipe.yaml b/recipes/ros-noetic-rosbash-params/recipe.yaml new file mode 100644 index 000000000..8a412e7c5 --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rosbash-params + version: 1.1.0 +source: + git_url: https://github.com/peci1/rosbash_params-release.git + git_rev: release/noetic/rosbash_params/1.1.0-1 + folder: ros-noetic-rosbash-params/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbash + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbash/bld_catkin.bat b/recipes/ros-noetic-rosbash/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbash/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbash/build_catkin.sh b/recipes/ros-noetic-rosbash/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbash/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbash/patch/ros-noetic-rosbash.patch b/recipes/ros-noetic-rosbash/patch/ros-noetic-rosbash.patch new file mode 100644 index 000000000..0a395c4ee --- /dev/null +++ b/recipes/ros-noetic-rosbash/patch/ros-noetic-rosbash.patch @@ -0,0 +1,16 @@ +diff --git a/scripts/rosrun.bat b/scripts/rosrun.bat +index e6c2fb353..d3bbb0803 100644 +--- a/scripts/rosrun.bat ++++ b/scripts/rosrun.bat +@@ -112,9 +112,9 @@ for %%a in ("%exepath%") do ( + set exepath_extension=%%~xa + ) + if "!exepath_extension!" == ".py" ( +- call %rosrun_prefix% "%PYTHONHOME%\python.exe" %exepath% %rosrun_args% ++ call %rosrun_prefix% "%CONDA_PREFIX%\python.exe" %exepath% %rosrun_args% + ) else if "!exepath_extension!" == "" ( +- call %rosrun_prefix% "%PYTHONHOME%\python.exe" %exepath% %rosrun_args% ++ call %rosrun_prefix% "%CONDA_PREFIX%\python.exe" %exepath% %rosrun_args% + ) else ( + call %rosrun_prefix% %exepath% %rosrun_args% + ) diff --git a/recipes/ros-noetic-rosbash/recipe.yaml b/recipes/ros-noetic-rosbash/recipe.yaml new file mode 100644 index 000000000..5c604b95a --- /dev/null +++ b/recipes/ros-noetic-rosbash/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rosbash + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosbash/1.15.8-1 + folder: ros-noetic-rosbash/src/work + patches: + - patch/ros-noetic-rosbash.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rospack + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rospack + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosboost-cfg/bld_catkin.bat b/recipes/ros-noetic-rosboost-cfg/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosboost-cfg/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosboost-cfg/build_catkin.sh b/recipes/ros-noetic-rosboost-cfg/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosboost-cfg/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosboost-cfg/recipe.yaml b/recipes/ros-noetic-rosboost-cfg/recipe.yaml new file mode 100644 index 000000000..a61a6ccf2 --- /dev/null +++ b/recipes/ros-noetic-rosboost-cfg/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-rosboost-cfg + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosboost_cfg/1.15.8-1 + folder: ros-noetic-rosboost-cfg/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-library/bld_catkin.bat b/recipes/ros-noetic-rosbridge-library/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-library/build_catkin.sh b/recipes/ros-noetic-rosbridge-library/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-library/recipe.yaml b/recipes/ros-noetic-rosbridge-library/recipe.yaml new file mode 100644 index 000000000..2d2aa9bfa --- /dev/null +++ b/recipes/ros-noetic-rosbridge-library/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-rosbridge-library + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_library/0.11.17-1 + folder: ros-noetic-rosbridge-library/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pillow + - pip + - sel(build_platform == target_platform): pkg-config + - pymongo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-rospy-tutorials + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-msgs + - ros-noetic-tf2-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - setuptools + run: + - pillow + - pymongo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostopic + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-msgs/bld_catkin.bat b/recipes/ros-noetic-rosbridge-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-msgs/build_catkin.sh b/recipes/ros-noetic-rosbridge-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-msgs/recipe.yaml b/recipes/ros-noetic-rosbridge-msgs/recipe.yaml new file mode 100644 index 000000000..0dd804b0c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rosbridge-msgs + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_msgs/0.11.17-1 + folder: ros-noetic-rosbridge-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-server/bld_catkin.bat b/recipes/ros-noetic-rosbridge-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-server/build_catkin.sh b/recipes/ros-noetic-rosbridge-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-server/recipe.yaml b/recipes/ros-noetic-rosbridge-server/recipe.yaml new file mode 100644 index 000000000..6e8d60713 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosbridge-server + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_server/0.11.17-1 + folder: ros-noetic-rosbridge-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + - setuptools + run: + - autobahn + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosapi + - ros-noetic-rosauth + - ros-noetic-rosbridge-library + - ros-noetic-rosbridge-msgs + - ros-noetic-rospy + - tornado + - twisted + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat b/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbridge-suite/build_catkin.sh b/recipes/ros-noetic-rosbridge-suite/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbridge-suite/recipe.yaml b/recipes/ros-noetic-rosbridge-suite/recipe.yaml new file mode 100644 index 000000000..48a53eb0f --- /dev/null +++ b/recipes/ros-noetic-rosbridge-suite/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-rosbridge-suite + version: 0.11.17 +source: + git_url: https://github.com/RobotWebTools-release/rosbridge_suite-release.git + git_rev: release/noetic/rosbridge_suite/0.11.17-1 + folder: ros-noetic-rosbridge-suite/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosapi + - ros-noetic-rosbridge-library + - ros-noetic-rosbridge-server + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbuild/bld_catkin.bat b/recipes/ros-noetic-rosbuild/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbuild/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbuild/build_catkin.sh b/recipes/ros-noetic-rosbuild/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbuild/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbuild/recipe.yaml b/recipes/ros-noetic-rosbuild/recipe.yaml new file mode 100644 index 000000000..d37339987 --- /dev/null +++ b/recipes/ros-noetic-rosbuild/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rosbuild + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosbuild/1.15.8-1 + folder: ros-noetic-rosbuild/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosclean/bld_catkin.bat b/recipes/ros-noetic-rosclean/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosclean/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosclean/build_catkin.sh b/recipes/ros-noetic-rosclean/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosclean/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosclean/recipe.yaml b/recipes/ros-noetic-rosclean/recipe.yaml new file mode 100644 index 000000000..6f129b72c --- /dev/null +++ b/recipes/ros-noetic-rosclean/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rosclean + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosclean/1.15.8-1 + folder: ros-noetic-rosclean/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosconsole-bridge/bld_catkin.bat b/recipes/ros-noetic-rosconsole-bridge/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosconsole-bridge/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosconsole-bridge/build_catkin.sh b/recipes/ros-noetic-rosconsole-bridge/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosconsole-bridge/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosconsole-bridge/recipe.yaml b/recipes/ros-noetic-rosconsole-bridge/recipe.yaml new file mode 100644 index 000000000..89539f981 --- /dev/null +++ b/recipes/ros-noetic-rosconsole-bridge/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rosconsole-bridge + version: 0.5.4 +source: + git_url: https://github.com/ros-gbp/rosconsole_bridge-release.git + git_rev: release/noetic/rosconsole_bridge/0.5.4-1 + folder: ros-noetic-rosconsole-bridge/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rosconsole + run: + - console_bridge + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-rosconsole + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosconsole/bld_catkin.bat b/recipes/ros-noetic-rosconsole/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosconsole/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosconsole/build_catkin.sh b/recipes/ros-noetic-rosconsole/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosconsole/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosconsole/patch/ros-noetic-rosconsole.patch b/recipes/ros-noetic-rosconsole/patch/ros-noetic-rosconsole.patch new file mode 100644 index 000000000..fe921daf0 --- /dev/null +++ b/recipes/ros-noetic-rosconsole/patch/ros-noetic-rosconsole.patch @@ -0,0 +1,630 @@ +From 9f930c007dd40aa7ede771b8859b529e024d7bfb Mon Sep 17 00:00:00 2001 +From: Daniel Reuter +Date: Wed, 11 May 2022 15:28:23 +0200 +Subject: [PATCH 1/4] be compatible with `log4cxx` `0.11` and `0.12`/`0.13` + +[`log4cxx` uses `std::shared_ptr`](https://issues.apache.org/jira/browse/LOGCXX-486) +since [version `0.12`](https://logging.apache.org/log4cxx/latest_stable/changelog.html) + +Unfortunately Ubuntu 22.04 ships with +[`0.12`](https://packages.ubuntu.com/jammy/liblog4cxx12), which means +that rosconsole with the `log4cxx` backend wouldn't compile. This is +also a problem on other distros such as Arch or Gentoo. + +I have carefully applied explicit construction/conversion and `&*` +instead of `.get()` to make the code compile with both versions of +`log4cxx`. +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 19 +++-- + test/thread_test.cpp | 3 +- + test/utest.cpp | 84 +++++++++++----------- + 3 files changed, 54 insertions(+), 52 deletions(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 901831265..4c3b26eab 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -166,7 +166,7 @@ void initialize() + } + + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); +- logger->addAppender(new ROSConsoleStdioAppender); ++ logger->addAppender(log4cxx::AppenderPtr(new ROSConsoleStdioAppender)); + #ifdef _MSC_VER + if ( ros_root_cstr != NULL ) { + free(ros_root_cstr); +@@ -200,7 +200,7 @@ bool isEnabledFor(void* handle, ::ros::console::Level level) + + void* getHandle(const std::string& name) + { +- return log4cxx::Logger::getLogger(name); ++ return &*log4cxx::Logger::getLogger(name); + } + + std::string getName(void* handle) +@@ -216,7 +216,7 @@ std::string getName(void* handle) + + bool get_loggers(std::map& loggers) + { +- log4cxx::spi::LoggerRepositoryPtr repo = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository(); ++ auto repo = log4cxx::spi::LoggerRepositoryPtr(log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository()); + + log4cxx::LoggerList current_loggers = repo->getCurrentLoggers(); + log4cxx::LoggerList::iterator it = current_loggers.begin(); +@@ -352,22 +352,21 @@ class Log4cxxAppender : public log4cxx::AppenderSkeleton + ros::console::LogAppender* appender_; + }; + +-Log4cxxAppender* g_log4cxx_appender = 0; ++log4cxx::AppenderPtr g_log4cxx_appender = {}; + + void register_appender(LogAppender* appender) + { +- g_log4cxx_appender = new Log4cxxAppender(appender); ++ g_log4cxx_appender = log4cxx::AppenderPtr( new Log4cxxAppender(appender)); + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->addAppender(g_log4cxx_appender); + } + + void deregister_appender(LogAppender* appender){ +- if(g_log4cxx_appender->getAppender() == appender) ++ if(dynamic_cast(&*g_log4cxx_appender)->getAppender() == appender) + { + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->removeAppender(g_log4cxx_appender); +- delete g_log4cxx_appender; +- g_log4cxx_appender = 0; ++ g_log4cxx_appender = log4cxx::AppenderPtr(); + } + } + void shutdown() +@@ -376,14 +375,14 @@ void shutdown() + { + const log4cxx::LoggerPtr& logger = log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME); + logger->removeAppender(g_log4cxx_appender); +- g_log4cxx_appender = 0; ++ g_log4cxx_appender = log4cxx::AppenderPtr(); + } + // reset this so that the logger doesn't get crashily destroyed + // again during global destruction. + // + // See https://code.ros.org/trac/ros/ticket/3271 + // +- log4cxx::Logger::getRootLogger()->getLoggerRepository()->shutdown(); ++ static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); + } + + } // namespace impl +diff --git a/test/thread_test.cpp b/test/thread_test.cpp +index 908edaef7..a7ac0375e 100644 +--- a/test/thread_test.cpp ++++ b/test/thread_test.cpp +@@ -83,6 +83,7 @@ class TestAppender : public log4cxx::AppenderSkeleton + return false; + } + }; ++LOG4CXX_PTR_DEF(TestAppender); + + void threadFunc(boost::barrier* b) + { +@@ -95,7 +96,7 @@ TEST(Rosconsole, threadedCalls) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + boost::thread_group tg; +diff --git a/test/utest.cpp b/test/utest.cpp +index 0357a8a3f..7ac8f7090 100644 +--- a/test/utest.cpp ++++ b/test/utest.cpp +@@ -85,6 +85,7 @@ class TestAppender : public log4cxx::AppenderSkeleton + return false; + } + }; ++LOG4CXX_PTR_DEF(TestAppender); + + class TestAppenderWithThrow : public log4cxx::AppenderSkeleton + { +@@ -113,13 +114,14 @@ struct BasicFilter : public ros::console::FilterBase + + bool enabled_; + }; ++LOG4CXX_PTR_DEF(TestAppenderWithThrow); + + BasicFilter g_filter(true); + + #define DEFINE_COND_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Cond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_COND(true, "Testing %d %d %d", 1, 2, 3); \ + macro_base##_COND(false, "Testing %d %d %d", 1, 2, 3); \ +@@ -130,7 +132,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedCond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_COND_NAMED(true, "test", "Testing %d %d %d", 1, 2, 3); \ + macro_base##_COND_NAMED(false, "test", "Testing %d %d %d", 1, 2, 3); \ +@@ -142,7 +144,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamCond) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_COND(true, "Testing " << 1 << " " << 2 << " " << 3); \ + macro_base##_STREAM_COND(false, "Testing " << 1 << " " << 2 << " " << 3); \ +@@ -153,7 +155,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamCondNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_COND_NAMED(true, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + macro_base##_STREAM_COND_NAMED(false, "test", "Testing " << 1 << " " << 2 << " " << 3); \ +@@ -167,7 +169,7 @@ BasicFilter g_filter(true); + #define DEFINE_ONCE_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Once) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_ONCE("Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -177,7 +179,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedOnce) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_ONCE_NAMED("test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -188,7 +190,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamOnce) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_ONCE("Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -198,7 +200,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamOnceNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_ONCE_NAMED("test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -211,7 +213,7 @@ BasicFilter g_filter(true); + #define DEFINE_THROTTLE_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Throttle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_THROTTLE(0.5, "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -221,7 +223,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedThrottle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_THROTTLE_NAMED(0.5, "test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -232,7 +234,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamThrottle) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_THROTTLE(0.5, "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -242,7 +244,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamThrottleNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_THROTTLE_NAMED(0.5, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -255,7 +257,7 @@ BasicFilter g_filter(true); + #define DEFINE_FILTER_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name##Filter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_FILTER(&g_filter, "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -265,7 +267,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##NamedFilter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_FILTER_NAMED(&g_filter, "test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -276,7 +278,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamFilter) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_FILTER(&g_filter, "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -286,7 +288,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamFilterNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_FILTER_NAMED(&g_filter, "test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -299,7 +301,7 @@ BasicFilter g_filter(true); + #define DEFINE_LEVEL_TESTS(name, macro_base, level, log4cxx_level) \ + TEST(RosConsole, name) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base("Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -309,7 +311,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##Named) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_NAMED("test", "Testing %d %d %d", 1, 2, 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -320,7 +322,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##Stream) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM("Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -330,7 +332,7 @@ BasicFilter g_filter(true); + } \ + TEST(RosConsole, name##StreamNamed) \ + { \ +- TestAppender* appender = new TestAppender; \ ++ auto appender = TestAppenderPtr(new TestAppender); \ + log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME)->addAppender( appender ); \ + macro_base##_STREAM_NAMED("test", "Testing " << 1 << " " << 2 << " " << 3); \ + ASSERT_EQ((int)appender->info_.size(), 1); \ +@@ -354,7 +356,7 @@ TEST(RosConsole, loggingLevels) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + int pre_count = 0; +@@ -575,7 +577,7 @@ TEST(RosConsole, changingLevel) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + logger->setLevel( log4cxx::Level::getError() ); +@@ -595,7 +597,7 @@ TEST(RosConsole, changingLoggerLevel) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + logger->setLevel(log4cxx::Level::getDebug()); +@@ -629,7 +631,7 @@ TEST(RosConsole, longPrintfStyleOutput) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender( appender ); + + std::stringstream ss; +@@ -652,7 +654,7 @@ TEST(RosConsole, throwingAppender) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppenderWithThrow* appender = new TestAppenderWithThrow; ++ auto appender = TestAppenderWithThrowPtr(new TestAppenderWithThrow); + logger->addAppender( appender ); + + try +@@ -677,7 +679,7 @@ TEST(RosConsole, once) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + onceFunc(); +@@ -697,7 +699,7 @@ TEST(RosConsole, throttle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -728,7 +730,7 @@ TEST(RosConsole, delayedThrottle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -765,7 +767,7 @@ TEST(RosConsole, onceStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + onceStreamFunc(); +@@ -785,7 +787,7 @@ TEST(RosConsole, throttleStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -816,7 +818,7 @@ TEST(RosConsole, delayedStreamThrottle) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ros::Time start = ros::Time::now(); +@@ -847,7 +849,7 @@ TEST(RosConsole, basicFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + BasicFilter trueFilter(true), falseFilter(false); +@@ -864,7 +866,7 @@ TEST(RosConsole, basicFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + BasicFilter trueFilter(true), falseFilter(false); +@@ -900,7 +902,7 @@ TEST(RosConsole, advancedFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + AdvancedFilter trueFilter(true), falseFilter(false); +@@ -919,7 +921,7 @@ TEST(RosConsole, advancedFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + AdvancedFilter trueFilter(true), falseFilter(false); +@@ -949,7 +951,7 @@ TEST(RosConsole, changeFilter) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ChangeFilter filter; +@@ -966,7 +968,7 @@ TEST(RosConsole, changeFilterStream) + { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(ROSCONSOLE_DEFAULT_NAME); + +- TestAppender* appender = new TestAppender; ++ auto appender = TestAppenderPtr(new TestAppender); + logger->addAppender(appender); + + ChangeFilter filter; +@@ -1022,7 +1024,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]+)\\.([0-9]+)"); +@@ -1037,7 +1039,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]{4}) ([0-9]{2}:[0-9]{2}:[0-9]{2})"); +@@ -1052,7 +1054,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]+)\\.([0-9]+)"); +@@ -1067,7 +1069,7 @@ TEST(RosConsole, formatter) + ros::console::g_formatter.init(format_string.c_str()); + + result = ros::console::g_formatter.getTokenStrings( +- log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, ++ &*log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME), level, str, + file, function, 0); + + boost::regex expr("([0-9]{4}) ([0-9]{2}:[0-9]{2}:[0-9]{2})"); + +From deaf674ae09c5255919a99d9efdeafe0f89ffbd1 Mon Sep 17 00:00:00 2001 +From: Andrey Vukolov +Date: Mon, 14 Nov 2022 19:15:07 +0100 +Subject: [PATCH 2/4] Compatibility for liblog4cxx v0.11-0.13 + + - Partially implements changes suggested both in #54 and + orphaned commit e3753eec58bf4e76012d019fd307349f94d1d0be + - Tested on liblog4cxx v0.12 and 0.13 + - Sets up pointer-level compatibility with both new and old + log4cxx versions + - Adds a workaround for API breaking changes in liblog4cxx + - Testing needed + +Signed-off-by: Andrey Vukolov +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 4c3b26eab..d1b6c4952 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -181,10 +181,12 @@ void initialize() + + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { ++ std::string filename(file); ++ std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); + log4cxx::Logger* logger = (log4cxx::Logger*)handle; + try + { +- logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, function, line)); ++ logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, short_filename.c_str(), function, line)); + } + catch (std::exception& e) + { +@@ -369,6 +371,18 @@ void deregister_appender(LogAppender* appender){ + g_log4cxx_appender = log4cxx::AppenderPtr(); + } + } ++ ++namespace { ++// log4cxx 0.11 and 0.13+ use types with operator-> ++template void shutdown_logger_repository(L l){ ++ l->shutdown(); ++} ++// log4cxx 0.12 uses a weakptr ++template void shutdown_logger_repository(std::weak_ptr l){ ++ l.lock()->shutdown(); ++} ++} ++ + void shutdown() + { + if(g_log4cxx_appender) +@@ -382,7 +396,8 @@ void shutdown() + // + // See https://code.ros.org/trac/ros/ticket/3271 + // +- static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); ++ // static_cast(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown(); ++ shutdown_logger_repository(log4cxx::Logger::getRootLogger()->getLoggerRepository()); + } + + } // namespace impl + +From d8a41f09b64d83dc5532b40fc0f16d69708f76d6 Mon Sep 17 00:00:00 2001 +From: Andrey Vukolov +Date: Mon, 14 Nov 2022 19:57:10 +0100 +Subject: [PATCH 3/4] Added liblog4cxx version handler + +Signed-off-by: Andrey Vukolov +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index d1b6c4952..70504b928 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -181,12 +181,18 @@ void initialize() + + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { ++ log4cxx::Logger* logger = (log4cxx::Logger*)handle; ++#if (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) + std::string filename(file); + std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); +- log4cxx::Logger* logger = (log4cxx::Logger*)handle; + try + { + logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, short_filename.c_str(), function, line)); ++#else ++ try ++ { ++ logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, function, line)); ++#endif + } + catch (std::exception& e) + { + +From 300693deac5747b70ed19af27c36b2b90d10c80d Mon Sep 17 00:00:00 2001 +From: Andrei Vukolov +Date: Tue, 10 Jan 2023 19:44:27 +0100 +Subject: [PATCH 4/4] Fixed compilation condition for Ubuntu LTS 22.04 + +--- + src/rosconsole/impl/rosconsole_log4cxx.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rosconsole/impl/rosconsole_log4cxx.cpp b/src/rosconsole/impl/rosconsole_log4cxx.cpp +index 70504b928..89403594d 100644 +--- a/src/rosconsole/impl/rosconsole_log4cxx.cpp ++++ b/src/rosconsole/impl/rosconsole_log4cxx.cpp +@@ -182,7 +182,7 @@ void initialize() + void print(void* handle, ::ros::console::Level level, const char* str, const char* file, const char* function, int line) + { + log4cxx::Logger* logger = (log4cxx::Logger*)handle; +-#if (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) ++#if (LOG4CXX_VERSION_MAJOR > 0) || ( (LOG4CXX_VERSION_MAJOR == 0) && (LOG4CXX_VERSION_MINOR > 11) ) + std::string filename(file); + std::string short_filename = filename.substr(filename.find_last_of("/\\") + 1); + try diff --git a/recipes/ros-noetic-rosconsole/recipe.yaml b/recipes/ros-noetic-rosconsole/recipe.yaml new file mode 100644 index 000000000..7a1379741 --- /dev/null +++ b/recipes/ros-noetic-rosconsole/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-rosconsole + version: 1.14.3 +source: + git_url: https://github.com/ros-gbp/rosconsole-release.git + git_rev: release/noetic/rosconsole/1.14.3-1 + folder: ros-noetic-rosconsole/src/work + patches: + - patch/ros-noetic-rosconsole.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - apr + - boost-cpp + - log4cxx + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rosbuild + - ros-noetic-rostime + - ros-noetic-rosunit + run: + - apr + - boost-cpp + - log4cxx + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-rosbuild + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscpp-core/bld_catkin.bat b/recipes/ros-noetic-roscpp-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscpp-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscpp-core/build_catkin.sh b/recipes/ros-noetic-roscpp-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscpp-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscpp-core/recipe.yaml b/recipes/ros-noetic-roscpp-core/recipe.yaml new file mode 100644 index 000000000..2f96070c5 --- /dev/null +++ b/recipes/ros-noetic-roscpp-core/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-roscpp-core + version: 0.7.3 +source: + git_url: https://github.com/ros-gbp/roscpp_core-release.git + git_rev: release/noetic/roscpp_core/0.7.3-1 + folder: ros-noetic-roscpp-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscpp-serialization/bld_catkin.bat b/recipes/ros-noetic-roscpp-serialization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscpp-serialization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscpp-serialization/build_catkin.sh b/recipes/ros-noetic-roscpp-serialization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscpp-serialization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscpp-serialization/recipe.yaml b/recipes/ros-noetic-roscpp-serialization/recipe.yaml new file mode 100644 index 000000000..438aae836 --- /dev/null +++ b/recipes/ros-noetic-roscpp-serialization/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-roscpp-serialization + version: 0.7.3 +source: + git_url: https://github.com/ros-gbp/roscpp_core-release.git + git_rev: release/noetic/roscpp_serialization/0.7.3-1 + folder: ros-noetic-roscpp-serialization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-roscpp-traits + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-roscpp-traits + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscpp-traits/bld_catkin.bat b/recipes/ros-noetic-roscpp-traits/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscpp-traits/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscpp-traits/build_catkin.sh b/recipes/ros-noetic-roscpp-traits/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscpp-traits/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscpp-traits/recipe.yaml b/recipes/ros-noetic-roscpp-traits/recipe.yaml new file mode 100644 index 000000000..5af732ab4 --- /dev/null +++ b/recipes/ros-noetic-roscpp-traits/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-roscpp-traits + version: 0.7.3 +source: + git_url: https://github.com/ros-gbp/roscpp_core-release.git + git_rev: release/noetic/roscpp_traits/0.7.3-1 + folder: ros-noetic-roscpp-traits/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscpp-tutorials/bld_catkin.bat b/recipes/ros-noetic-roscpp-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscpp-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscpp-tutorials/build_catkin.sh b/recipes/ros-noetic-roscpp-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscpp-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscpp-tutorials/recipe.yaml b/recipes/ros-noetic-roscpp-tutorials/recipe.yaml new file mode 100644 index 000000000..7278253e5 --- /dev/null +++ b/recipes/ros-noetic-roscpp-tutorials/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-roscpp-tutorials + version: 0.10.2 +source: + git_url: https://github.com/ros-gbp/ros_tutorials-release.git + git_rev: release/noetic/roscpp_tutorials/0.10.2-1 + folder: ros-noetic-roscpp-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostime + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscpp/bld_catkin.bat b/recipes/ros-noetic-roscpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscpp/build_catkin.sh b/recipes/ros-noetic-roscpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscpp/patch/ros-noetic-roscpp.patch b/recipes/ros-noetic-roscpp/patch/ros-noetic-roscpp.patch new file mode 100644 index 000000000..b16cf7302 --- /dev/null +++ b/recipes/ros-noetic-roscpp/patch/ros-noetic-roscpp.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fe506f1ffc..fa5e199777 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -22,7 +22,7 @@ list(GET roscpp_VERSION_LIST 2 roscpp_VERSION_PATCH) + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/ros/common.h.in ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_INCLUDE_DESTINATION}/ros/common.h) + +-find_package(Boost REQUIRED COMPONENTS chrono filesystem system) ++find_package(Boost REQUIRED COMPONENTS chrono filesystem system thread) + + include_directories(include ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_INCLUDE_DESTINATION}/ros ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + # this is needed for use within a bazel workspace. See #1548 for details. diff --git a/recipes/ros-noetic-roscpp/recipe.yaml b/recipes/ros-noetic-roscpp/recipe.yaml new file mode 100644 index 000000000..b7371454d --- /dev/null +++ b/recipes/ros-noetic-roscpp/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-roscpp + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/roscpp/1.16.0-1 + folder: ros-noetic-roscpp/src/work + patches: + - patch/ros-noetic-roscpp.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rosgraph-msgs + - ros-noetic-roslang + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-xmlrpcpp + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp-serialization + - ros-noetic-roscpp-traits + - ros-noetic-rosgraph-msgs + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roscreate/bld_catkin.bat b/recipes/ros-noetic-roscreate/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roscreate/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roscreate/build_catkin.sh b/recipes/ros-noetic-roscreate/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roscreate/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roscreate/recipe.yaml b/recipes/ros-noetic-roscreate/recipe.yaml new file mode 100644 index 000000000..e39204285 --- /dev/null +++ b/recipes/ros-noetic-roscreate/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-roscreate + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/roscreate/1.15.8-1 + folder: ros-noetic-roscreate/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roslib + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosdoc-lite/bld_catkin.bat b/recipes/ros-noetic-rosdoc-lite/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosdoc-lite/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosdoc-lite/build_catkin.sh b/recipes/ros-noetic-rosdoc-lite/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosdoc-lite/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosdoc-lite/recipe.yaml b/recipes/ros-noetic-rosdoc-lite/recipe.yaml new file mode 100644 index 000000000..0255483ac --- /dev/null +++ b/recipes/ros-noetic-rosdoc-lite/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rosdoc-lite + version: 0.2.11 +source: + git_url: https://github.com/ros-gbp/rosdoc_lite-release.git + git_rev: release/noetic/rosdoc_lite/0.2.11-1 + folder: ros-noetic-rosdoc-lite/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - catkin_pkg + - doxygen + - graphviz + - kitchen + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - rospkg + - sphinx + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosgraph-msgs/bld_catkin.bat b/recipes/ros-noetic-rosgraph-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosgraph-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosgraph-msgs/build_catkin.sh b/recipes/ros-noetic-rosgraph-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosgraph-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosgraph-msgs/recipe.yaml b/recipes/ros-noetic-rosgraph-msgs/recipe.yaml new file mode 100644 index 000000000..7d122c4f1 --- /dev/null +++ b/recipes/ros-noetic-rosgraph-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rosgraph-msgs + version: 1.11.3 +source: + git_url: https://github.com/ros-gbp/ros_comm_msgs-release.git + git_rev: release/noetic/rosgraph_msgs/1.11.3-1 + folder: ros-noetic-rosgraph-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosgraph/bld_catkin.bat b/recipes/ros-noetic-rosgraph/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosgraph/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosgraph/build_catkin.sh b/recipes/ros-noetic-rosgraph/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosgraph/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosgraph/patch/ros-noetic-rosgraph.patch b/recipes/ros-noetic-rosgraph/patch/ros-noetic-rosgraph.patch new file mode 100644 index 000000000..8dc4f5990 --- /dev/null +++ b/recipes/ros-noetic-rosgraph/patch/ros-noetic-rosgraph.patch @@ -0,0 +1,96 @@ +diff --git a/src/rosgraph/roslogging.py b/src/rosgraph/roslogging.py +index 9ecc121893..0a94b2bed3 100644 +--- a/src/rosgraph/roslogging.py ++++ b/src/rosgraph/roslogging.py +@@ -50,32 +50,58 @@ from rospkg.environment import ROS_LOG_DIR + class LoggingException(Exception): pass + + class RospyLogger(logging.getLoggerClass()): +- def findCaller(self, *args, **kwargs): ++ # copied from python3.11/logging/__init__.py ++ # _srcfile is only used in conjunction with sys._getframe(). ++ # Setting _srcfile to None will prevent findCaller() from being called. This ++ # way, you can avoid the overhead of fetching caller information. ++ ++ # The following is based on warnings._is_internal_frame. It makes sure that ++ # frames of the import mechanism are skipped when logging at module level and ++ # using a stacklevel value greater than one. ++ @staticmethod ++ def _is_internal_frame(frame): ++ """Signal whether the frame is a CPython or logging module internal.""" ++ filename = os.path.normcase(frame.f_code.co_filename) ++ return filename == logging._srcfile or ( ++ "importlib" in filename and "_bootstrap" in filename ++ ) ++ ++ ++ def findCaller(self, stack_info=False, stacklevel=1): + """ + Find the stack frame of the caller so that we can note the source + file name, line number, and function name with class name if possible. + """ +- file_name, lineno, func_name = super(RospyLogger, self).findCaller(*args, **kwargs)[:3] +- file_name = os.path.normcase(file_name) +- +- f = inspect.currentframe() +- if f is not None: +- f = f.f_back +- while hasattr(f, "f_code"): +- # Search for the right frame using the data already found by parent class. +- co = f.f_code +- filename = os.path.normcase(co.co_filename) +- if filename == file_name and f.f_lineno == lineno and co.co_name == func_name: ++ ++ ++ f = logging.currentframe() ++ #On some versions of IronPython, currentframe() returns None if ++ #IronPython isn't run with -X:Frames. ++ if f is None: ++ return "(unknown file)", 0, "(unknown function)", None ++ while stacklevel > 0: ++ next_f = f.f_back ++ if next_f is None: ++ ## We've got options here. ++ ## If we want to use the last (deepest) frame: + break +- if f.f_back: +- f = f.f_back +- +- # Jump up two more frames, as the logger methods have been double wrapped. +- if f is not None and f.f_back and f.f_code and f.f_code.co_name == '_base_logger': +- f = f.f_back +- if f.f_back: +- f = f.f_back ++ ## If we want to mimic the warnings module: ++ #return ("sys", 1, "(unknown function)", None) ++ ## If we want to be pedantic: ++ #raise ValueError("call stack is not deep enough") ++ f = next_f ++ if not RospyLogger._is_internal_frame(f): ++ stacklevel -= 1 + co = f.f_code ++ sinfo = None ++ if stack_info: ++ with io.StringIO() as sio: ++ sio.write("Stack (most recent call last):\n") ++ traceback.print_stack(f, file=sio) ++ sinfo = sio.getvalue() ++ if sinfo[-1] == '\n': ++ sinfo = sinfo[:-1] ++ + func_name = co.co_name + + # Now extend the function name with class name, if available. +@@ -85,11 +111,7 @@ class RospyLogger(logging.getLoggerClass()): + except KeyError: # if the function is unbound, there is no self. + pass + +- if sys.version_info > (3, 2): +- # Dummy last argument to match Python3 return type +- return co.co_filename, f.f_lineno, func_name, None +- else: +- return co.co_filename, f.f_lineno, func_name ++ return co.co_filename, f.f_lineno, func_name, sinfo + + logging.setLoggerClass(RospyLogger) + diff --git a/recipes/ros-noetic-rosgraph/recipe.yaml b/recipes/ros-noetic-rosgraph/recipe.yaml new file mode 100644 index 000000000..bfdd02d45 --- /dev/null +++ b/recipes/ros-noetic-rosgraph/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rosgraph + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosgraph/1.16.0-1 + folder: ros-noetic-rosgraph/src/work + patches: + - patch/ros-noetic-rosgraph.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - netifaces + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslang/bld_catkin.bat b/recipes/ros-noetic-roslang/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslang/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslang/build_catkin.sh b/recipes/ros-noetic-roslang/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslang/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslang/recipe.yaml b/recipes/ros-noetic-roslang/recipe.yaml new file mode 100644 index 000000000..b0efdddd8 --- /dev/null +++ b/recipes/ros-noetic-roslang/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-roslang + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/roslang/1.15.8-1 + folder: ros-noetic-roslang/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslaunch/bld_catkin.bat b/recipes/ros-noetic-roslaunch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslaunch/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslaunch/build_catkin.sh b/recipes/ros-noetic-roslaunch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslaunch/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslaunch/recipe.yaml b/recipes/ros-noetic-roslaunch/recipe.yaml new file mode 100644 index 000000000..50a92b6ae --- /dev/null +++ b/recipes/ros-noetic-roslaunch/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-roslaunch + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/roslaunch/1.16.0-1 + folder: ros-noetic-roslaunch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosbuild + run: + - paramiko + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosclean + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rosmaster + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rosunit + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslib/bld_catkin.bat b/recipes/ros-noetic-roslib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslib/build_catkin.sh b/recipes/ros-noetic-roslib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslib/recipe.yaml b/recipes/ros-noetic-roslib/recipe.yaml new file mode 100644 index 000000000..9ded47349 --- /dev/null +++ b/recipes/ros-noetic-roslib/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-roslib + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/roslib/1.15.8-1 + folder: ros-noetic-roslib/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosmake + - ros-noetic-rospack + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-ros-environment + - ros-noetic-rospack + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslint/bld_catkin.bat b/recipes/ros-noetic-roslint/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslint/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslint/build_catkin.sh b/recipes/ros-noetic-roslint/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslint/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslint/recipe.yaml b/recipes/ros-noetic-roslint/recipe.yaml new file mode 100644 index 000000000..02b79267d --- /dev/null +++ b/recipes/ros-noetic-roslint/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-roslint + version: 0.12.0 +source: + git_url: https://github.com/ros-gbp/roslint-release.git + git_rev: release/noetic/roslint/0.12.0-1 + folder: ros-noetic-roslint/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslisp/bld_catkin.bat b/recipes/ros-noetic-roslisp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslisp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslisp/build_catkin.sh b/recipes/ros-noetic-roslisp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslisp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslisp/patch/ros-noetic-roslisp.patch b/recipes/ros-noetic-roslisp/patch/ros-noetic-roslisp.patch new file mode 100644 index 000000000..1b4402899 --- /dev/null +++ b/recipes/ros-noetic-roslisp/patch/ros-noetic-roslisp.patch @@ -0,0 +1,10 @@ +diff --git a/env-hooks/99.roslisp.sh.in b/env-hooks/99.roslisp.sh.in +index 05aba70..a2733d8 100644 +--- a/env-hooks/99.roslisp.sh.in ++++ b/env-hooks/99.roslisp.sh.in +@@ -18,4 +18,4 @@ for workspace in workspaces: + print(os.pathsep.join(paths)) + EOF + ) +-export ROSLISP_PACKAGE_DIRECTORIES="`@PYTHON_EXECUTABLE@ -c \"$PYTHON_CODE_BUILD_ROSLISP_PACKAGE_DIRECTORIES\"`" ++export ROSLISP_PACKAGE_DIRECTORIES="`python -c \"$PYTHON_CODE_BUILD_ROSLISP_PACKAGE_DIRECTORIES\"`" diff --git a/recipes/ros-noetic-roslisp/recipe.yaml b/recipes/ros-noetic-roslisp/recipe.yaml new file mode 100644 index 000000000..04d6104ce --- /dev/null +++ b/recipes/ros-noetic-roslisp/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-roslisp + version: 1.9.25 +source: + git_url: https://github.com/ros-gbp/roslisp-release.git + git_rev: release/noetic/roslisp/1.9.25-1 + folder: ros-noetic-roslisp/src/work + patches: + - patch/ros-noetic-roslisp.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-ros-environment + - ros-noetic-rosgraph-msgs + - ros-noetic-roslang + - ros-noetic-rospack + - ros-noetic-std-srvs + - sbcl + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ros-environment + - ros-noetic-rosgraph-msgs + - ros-noetic-roslang + - ros-noetic-rospack + - ros-noetic-std-srvs + - sbcl + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roslz4/bld_catkin.bat b/recipes/ros-noetic-roslz4/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roslz4/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roslz4/build_catkin.sh b/recipes/ros-noetic-roslz4/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roslz4/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roslz4/recipe.yaml b/recipes/ros-noetic-roslz4/recipe.yaml new file mode 100644 index 000000000..62e19abb5 --- /dev/null +++ b/recipes/ros-noetic-roslz4/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-roslz4 + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/roslz4/1.16.0-1 + folder: ros-noetic-roslz4/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - lz4 + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rosunit + run: + - lz4 + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosmake/bld_catkin.bat b/recipes/ros-noetic-rosmake/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosmake/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosmake/build_catkin.sh b/recipes/ros-noetic-rosmake/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosmake/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosmake/recipe.yaml b/recipes/ros-noetic-rosmake/recipe.yaml new file mode 100644 index 000000000..db7edc21a --- /dev/null +++ b/recipes/ros-noetic-rosmake/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-rosmake + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosmake/1.15.8-1 + folder: ros-noetic-rosmake/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosmaster/bld_catkin.bat b/recipes/ros-noetic-rosmaster/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosmaster/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosmaster/build_catkin.sh b/recipes/ros-noetic-rosmaster/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosmaster/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosmaster/recipe.yaml b/recipes/ros-noetic-rosmaster/recipe.yaml new file mode 100644 index 000000000..a9afcccc5 --- /dev/null +++ b/recipes/ros-noetic-rosmaster/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rosmaster + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosmaster/1.16.0-1 + folder: ros-noetic-rosmaster/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - defusedxml + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosgraph + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosmsg-cpp/bld_catkin.bat b/recipes/ros-noetic-rosmsg-cpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosmsg-cpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosmsg-cpp/build_catkin.sh b/recipes/ros-noetic-rosmsg-cpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosmsg-cpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosmsg-cpp/recipe.yaml b/recipes/ros-noetic-rosmsg-cpp/recipe.yaml new file mode 100644 index 000000000..a4b517bdf --- /dev/null +++ b/recipes/ros-noetic-rosmsg-cpp/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rosmsg-cpp + version: 1.0.2 +source: + git_url: https://github.com/ctu-vras/rosmsg_cpp-release.git + git_rev: release/noetic/rosmsg_cpp/1.0.2-1 + folder: ros-noetic-rosmsg-cpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-geometry-msgs + - ros-noetic-ros-environment + - ros-noetic-roslib + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-message-runtime + - ros-noetic-roslib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosmsg/bld_catkin.bat b/recipes/ros-noetic-rosmsg/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosmsg/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosmsg/build_catkin.sh b/recipes/ros-noetic-rosmsg/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosmsg/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosmsg/recipe.yaml b/recipes/ros-noetic-rosmsg/recipe.yaml new file mode 100644 index 000000000..594f8d82b --- /dev/null +++ b/recipes/ros-noetic-rosmsg/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosmsg + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosmsg/1.16.0-1 + folder: ros-noetic-rosmsg/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-std-srvs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genmsg + - ros-noetic-genpy + - ros-noetic-rosbag + - ros-noetic-roslib + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosnode/bld_catkin.bat b/recipes/ros-noetic-rosnode/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosnode/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosnode/build_catkin.sh b/recipes/ros-noetic-rosnode/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosnode/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosnode/recipe.yaml b/recipes/ros-noetic-rosnode/recipe.yaml new file mode 100644 index 000000000..83f0905f0 --- /dev/null +++ b/recipes/ros-noetic-rosnode/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rosnode + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosnode/1.16.0-1 + folder: ros-noetic-rosnode/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosgraph + - ros-noetic-rostest + - ros-noetic-rostopic + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosgraph + - ros-noetic-rostopic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosout/bld_catkin.bat b/recipes/ros-noetic-rosout/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosout/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosout/build_catkin.sh b/recipes/ros-noetic-rosout/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosout/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosout/recipe.yaml b/recipes/ros-noetic-rosout/recipe.yaml new file mode 100644 index 000000000..b7efcac8b --- /dev/null +++ b/recipes/ros-noetic-rosout/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-rosout + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosout/1.16.0-1 + folder: ros-noetic-rosout/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rospack/bld_catkin.bat b/recipes/ros-noetic-rospack/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rospack/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rospack/build_catkin.sh b/recipes/ros-noetic-rospack/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rospack/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rospack/patch/ros-noetic-rospack.patch b/recipes/ros-noetic-rospack/patch/ros-noetic-rospack.patch new file mode 100644 index 000000000..43f0337d1 --- /dev/null +++ b/recipes/ros-noetic-rospack/patch/ros-noetic-rospack.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 91dc79d..3d74661 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,12 +7,19 @@ set(Python_ADDITIONAL_VERSIONS "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" + find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) + find_package(TinyXML2 REQUIRED) + +-catkin_package( +- INCLUDE_DIRS include +- LIBRARIES rospack ${PYTHON_LIBRARIES} +- DEPENDS Boost TinyXML2 ++if(NOT APPLE) ++ catkin_package( ++ INCLUDE_DIRS include ++ LIBRARIES rospack ${PYTHON_LIBRARIES} ++ DEPENDS Boost TinyXML2 ++ ) ++else() ++ catkin_package( ++ INCLUDE_DIRS include ++ LIBRARIES rospack ++ DEPENDS Boost TinyXML2 + ) +- ++endif() + #add_definitions(-Wall) + + set(API_BACKCOMPAT_V1 "YES" CACHE BOOL "Whether to enable backwards compatibility with old C++ API") diff --git a/recipes/ros-noetic-rospack/recipe.yaml b/recipes/ros-noetic-rospack/recipe.yaml new file mode 100644 index 000000000..a41418e56 --- /dev/null +++ b/recipes/ros-noetic-rospack/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-rospack + version: 2.6.2 +source: + git_url: https://github.com/ros-gbp/rospack-release.git + git_rev: release/noetic/rospack/2.6.2-1 + folder: ros-noetic-rospack/src/work + patches: + - patch/ros-noetic-rospack.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - coverage + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - tinyxml2 + run: + - boost-cpp + - catkin_pkg + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ros-environment + - rosdep + - tinyxml2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosparam/bld_catkin.bat b/recipes/ros-noetic-rosparam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosparam/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosparam/build_catkin.sh b/recipes/ros-noetic-rosparam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosparam/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosparam/recipe.yaml b/recipes/ros-noetic-rosparam/recipe.yaml new file mode 100644 index 000000000..025391afb --- /dev/null +++ b/recipes/ros-noetic-rosparam/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rosparam + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosparam/1.16.0-1 + folder: ros-noetic-rosparam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosgraph + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rospy-message-converter/bld_catkin.bat b/recipes/ros-noetic-rospy-message-converter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rospy-message-converter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rospy-message-converter/build_catkin.sh b/recipes/ros-noetic-rospy-message-converter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rospy-message-converter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rospy-message-converter/recipe.yaml b/recipes/ros-noetic-rospy-message-converter/recipe.yaml new file mode 100644 index 000000000..59770ff8c --- /dev/null +++ b/recipes/ros-noetic-rospy-message-converter/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rospy-message-converter + version: 0.5.9 +source: + git_url: https://github.com/uos-gbp/rospy_message_converter-release.git + git_rev: release/noetic/rospy_message_converter/0.5.9-1 + folder: ros-noetic-rospy-message-converter/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-rosunit + - ros-noetic-std-msgs + - ros-noetic-std-srvs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rospy-tutorials/bld_catkin.bat b/recipes/ros-noetic-rospy-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rospy-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rospy-tutorials/build_catkin.sh b/recipes/ros-noetic-rospy-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rospy-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rospy-tutorials/recipe.yaml b/recipes/ros-noetic-rospy-tutorials/recipe.yaml new file mode 100644 index 000000000..3be21204f --- /dev/null +++ b/recipes/ros-noetic-rospy-tutorials/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rospy-tutorials + version: 0.10.2 +source: + git_url: https://github.com/ros-gbp/ros_tutorials-release.git + git_rev: release/noetic/rospy_tutorials/0.10.2-1 + folder: ros-noetic-rospy-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp-tutorials + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rospy/bld_catkin.bat b/recipes/ros-noetic-rospy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rospy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rospy/build_catkin.sh b/recipes/ros-noetic-rospy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rospy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rospy/recipe.yaml b/recipes/ros-noetic-rospy/recipe.yaml new file mode 100644 index 000000000..153b6ceef --- /dev/null +++ b/recipes/ros-noetic-rospy/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rospy + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rospy/1.16.0-1 + folder: ros-noetic-rospy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - numpy + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-genpy + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-std-msgs + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosserial-msgs/bld_catkin.bat b/recipes/ros-noetic-rosserial-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosserial-msgs/build_catkin.sh b/recipes/ros-noetic-rosserial-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosserial-msgs/recipe.yaml b/recipes/ros-noetic-rosserial-msgs/recipe.yaml new file mode 100644 index 000000000..050ab4529 --- /dev/null +++ b/recipes/ros-noetic-rosserial-msgs/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-rosserial-msgs + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial_msgs/0.9.2-1 + folder: ros-noetic-rosserial-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosserial-python/bld_catkin.bat b/recipes/ros-noetic-rosserial-python/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial-python/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosserial-python/build_catkin.sh b/recipes/ros-noetic-rosserial-python/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial-python/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosserial-python/recipe.yaml b/recipes/ros-noetic-rosserial-python/recipe.yaml new file mode 100644 index 000000000..d66a622a8 --- /dev/null +++ b/recipes/ros-noetic-rosserial-python/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rosserial-python + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial_python/0.9.2-1 + folder: ros-noetic-rosserial-python/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pyserial + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-rospy + - ros-noetic-rosserial-msgs + run: + - pyserial + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-rospy + - ros-noetic-rosserial-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosserial-server/bld_catkin.bat b/recipes/ros-noetic-rosserial-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosserial-server/build_catkin.sh b/recipes/ros-noetic-rosserial-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosserial-server/recipe.yaml b/recipes/ros-noetic-rosserial-server/recipe.yaml new file mode 100644 index 000000000..167d1a3cb --- /dev/null +++ b/recipes/ros-noetic-rosserial-server/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosserial-server + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial_server/0.9.2-1 + folder: ros-noetic-rosserial-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rosserial-msgs + - ros-noetic-std-msgs + - ros-noetic-topic-tools + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rosserial-msgs + - ros-noetic-std-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosservice/bld_catkin.bat b/recipes/ros-noetic-rosservice/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosservice/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosservice/build_catkin.sh b/recipes/ros-noetic-rosservice/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosservice/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosservice/recipe.yaml b/recipes/ros-noetic-rosservice/recipe.yaml new file mode 100644 index 000000000..4bedf4ff9 --- /dev/null +++ b/recipes/ros-noetic-rosservice/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rosservice + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rosservice/1.16.0-1 + folder: ros-noetic-rosservice/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genpy + - ros-noetic-rosgraph + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genpy + - ros-noetic-rosgraph + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rostest/bld_catkin.bat b/recipes/ros-noetic-rostest/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rostest/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rostest/build_catkin.sh b/recipes/ros-noetic-rostest/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rostest/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rostest/recipe.yaml b/recipes/ros-noetic-rostest/recipe.yaml new file mode 100644 index 000000000..8bdbc91c7 --- /dev/null +++ b/recipes/ros-noetic-rostest/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rostest + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rostest/1.16.0-1 + folder: ros-noetic-rostest/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosgraph + - ros-noetic-roslaunch + - ros-noetic-rosmaster + - ros-noetic-rospy + - ros-noetic-rosunit + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosgraph + - ros-noetic-roslaunch + - ros-noetic-rosmaster + - ros-noetic-rospy + - ros-noetic-rosunit + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rostime/bld_catkin.bat b/recipes/ros-noetic-rostime/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rostime/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rostime/build_catkin.sh b/recipes/ros-noetic-rostime/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rostime/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rostime/patch/ros-noetic-rostime.linux.patch b/recipes/ros-noetic-rostime/patch/ros-noetic-rostime.linux.patch new file mode 100644 index 000000000..d142f2dbe --- /dev/null +++ b/recipes/ros-noetic-rostime/patch/ros-noetic-rostime.linux.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 32a76bb9..68bd38f4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,7 +5,7 @@ find_package(catkin REQUIRED COMPONENTS cpp_common) + find_package(Boost REQUIRED COMPONENTS date_time system thread) + catkin_package( + INCLUDE_DIRS include +- LIBRARIES ${PROJECT_NAME} ++ LIBRARIES ${PROJECT_NAME} ${RT_LIBRARY} + CATKIN_DEPENDS cpp_common + DEPENDS Boost + ) diff --git a/recipes/ros-noetic-rostime/recipe.yaml b/recipes/ros-noetic-rostime/recipe.yaml new file mode 100644 index 000000000..2bdb2f353 --- /dev/null +++ b/recipes/ros-noetic-rostime/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rostime + version: 0.7.3 +source: + git_url: https://github.com/ros-gbp/roscpp_core-release.git + git_rev: release/noetic/rostime/0.7.3-1 + folder: ros-noetic-rostime/src/work + patches: + - patch/ros-noetic-rostime.linux.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rostopic/bld_catkin.bat b/recipes/ros-noetic-rostopic/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rostopic/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rostopic/build_catkin.sh b/recipes/ros-noetic-rostopic/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rostopic/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rostopic/recipe.yaml b/recipes/ros-noetic-rostopic/recipe.yaml new file mode 100644 index 000000000..f2814394e --- /dev/null +++ b/recipes/ros-noetic-rostopic/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rostopic + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/rostopic/1.16.0-1 + folder: ros-noetic-rostopic/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-genpy + - ros-noetic-rosbag + - ros-noetic-rospy + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-genpy + - ros-noetic-rosbag + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosunit/bld_catkin.bat b/recipes/ros-noetic-rosunit/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosunit/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosunit/build_catkin.sh b/recipes/ros-noetic-rosunit/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosunit/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosunit/recipe.yaml b/recipes/ros-noetic-rosunit/recipe.yaml new file mode 100644 index 000000000..2971f8b3d --- /dev/null +++ b/recipes/ros-noetic-rosunit/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-rosunit + version: 1.15.8 +source: + git_url: https://github.com/ros-gbp/ros-release.git + git_rev: release/noetic/rosunit/1.15.8-1 + folder: ros-noetic-rosunit/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roslib + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-roswtf/bld_catkin.bat b/recipes/ros-noetic-roswtf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-roswtf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-roswtf/build_catkin.sh b/recipes/ros-noetic-roswtf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-roswtf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-roswtf/recipe.yaml b/recipes/ros-noetic-roswtf/recipe.yaml new file mode 100644 index 000000000..a2de6f005 --- /dev/null +++ b/recipes/ros-noetic-roswtf/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-roswtf + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/roswtf/1.16.0-1 + folder: ros-noetic-roswtf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-rosbag + - ros-noetic-roslang + - ros-noetic-rostest + - ros-noetic-std-srvs + run: + - paramiko + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbuild + - ros-noetic-rosgraph + - ros-noetic-roslaunch + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rosservice + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rotate-recovery/bld_catkin.bat b/recipes/ros-noetic-rotate-recovery/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rotate-recovery/build_catkin.sh b/recipes/ros-noetic-rotate-recovery/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rotate-recovery/recipe.yaml b/recipes/ros-noetic-rotate-recovery/recipe.yaml new file mode 100644 index 000000000..267f83be3 --- /dev/null +++ b/recipes/ros-noetic-rotate-recovery/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rotate-recovery + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/rotate_recovery/1.17.3-1 + folder: ros-noetic-rotate-recovery/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-action/bld_catkin.bat b/recipes/ros-noetic-rqt-action/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-action/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-action/build_catkin.sh b/recipes/ros-noetic-rqt-action/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-action/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-action/recipe.yaml b/recipes/ros-noetic-rqt-action/recipe.yaml new file mode 100644 index 000000000..eacfbfabf --- /dev/null +++ b/recipes/ros-noetic-rqt-action/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-action + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_action-release.git + git_rev: release/noetic/rqt_action/0.4.9-1 + folder: ros-noetic-rqt-action/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rospy + - ros-noetic-rqt-msg + - ros-noetic-rqt-py-common + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-rqt-msg + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml b/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml new file mode 100644 index 000000000..9709a9fe4 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag-plugins/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-bag-plugins + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/rqt_bag-release.git + git_rev: release/noetic/rqt_bag_plugins/0.5.1-1 + folder: ros-noetic-rqt-bag-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pillow + - pycairo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rqt-bag + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-plot + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-bag/bld_catkin.bat b/recipes/ros-noetic-rqt-bag/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-bag/build_catkin.sh b/recipes/ros-noetic-rqt-bag/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-bag/recipe.yaml b/recipes/ros-noetic-rqt-bag/recipe.yaml new file mode 100644 index 000000000..6081b48c3 --- /dev/null +++ b/recipes/ros-noetic-rqt-bag/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-bag + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/rqt_bag-release.git + git_rev: release/noetic/rqt_bag/0.5.1-1 + folder: ros-noetic-rqt-bag/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosbag + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-common-plugins/recipe.yaml b/recipes/ros-noetic-rqt-common-plugins/recipe.yaml new file mode 100644 index 000000000..e48eae828 --- /dev/null +++ b/recipes/ros-noetic-rqt-common-plugins/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rqt-common-plugins + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_common_plugins-release.git + git_rev: release/noetic/rqt_common_plugins/0.4.9-1 + folder: ros-noetic-rqt-common-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rqt-action + - ros-noetic-rqt-bag + - ros-noetic-rqt-bag-plugins + - ros-noetic-rqt-console + - ros-noetic-rqt-dep + - ros-noetic-rqt-graph + - ros-noetic-rqt-image-view + - ros-noetic-rqt-launch + - ros-noetic-rqt-logger-level + - ros-noetic-rqt-msg + - ros-noetic-rqt-plot + - ros-noetic-rqt-publisher + - ros-noetic-rqt-py-common + - ros-noetic-rqt-py-console + - ros-noetic-rqt-reconfigure + - ros-noetic-rqt-service-caller + - ros-noetic-rqt-shell + - ros-noetic-rqt-srv + - ros-noetic-rqt-top + - ros-noetic-rqt-topic + - ros-noetic-rqt-web + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-console/bld_catkin.bat b/recipes/ros-noetic-rqt-console/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-console/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-console/build_catkin.sh b/recipes/ros-noetic-rqt-console/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-console/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-console/recipe.yaml b/recipes/ros-noetic-rqt-console/recipe.yaml new file mode 100644 index 000000000..b6299b733 --- /dev/null +++ b/recipes/ros-noetic-rqt-console/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-console + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_console-release.git + git_rev: release/noetic/rqt_console/0.4.12-1 + folder: ros-noetic-rqt-console/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-logger-level + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat b/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh b/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-controller-manager/recipe.yaml b/recipes/ros-noetic-rqt-controller-manager/recipe.yaml new file mode 100644 index 000000000..58be1baf3 --- /dev/null +++ b/recipes/ros-noetic-rqt-controller-manager/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-controller-manager + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/rqt_controller_manager/0.20.0-1 + folder: ros-noetic-rqt-controller-manager/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-manager-msgs + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-dep/bld_catkin.bat b/recipes/ros-noetic-rqt-dep/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-dep/build_catkin.sh b/recipes/ros-noetic-rqt-dep/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-dep/recipe.yaml b/recipes/ros-noetic-rqt-dep/recipe.yaml new file mode 100644 index 000000000..94340c1de --- /dev/null +++ b/recipes/ros-noetic-rqt-dep/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-dep + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_dep-release.git + git_rev: release/noetic/rqt_dep/0.4.12-1 + folder: ros-noetic-rqt-dep/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rqt-graph + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-graph/bld_catkin.bat b/recipes/ros-noetic-rqt-graph/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-graph/build_catkin.sh b/recipes/ros-noetic-rqt-graph/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-graph/recipe.yaml b/recipes/ros-noetic-rqt-graph/recipe.yaml new file mode 100644 index 000000000..080ff5f96 --- /dev/null +++ b/recipes/ros-noetic-rqt-graph/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-graph + version: 0.4.14 +source: + git_url: https://github.com/ros-gbp/rqt_graph-release.git + git_rev: release/noetic/rqt_graph/0.4.14-1 + folder: ros-noetic-rqt-graph/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslib + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-gui-cpp/bld_catkin.bat b/recipes/ros-noetic-rqt-gui-cpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-cpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-gui-cpp/build_catkin.sh b/recipes/ros-noetic-rqt-gui-cpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-cpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-gui-cpp/patch/ros-noetic-rqt-gui-cpp.patch b/recipes/ros-noetic-rqt-gui-cpp/patch/ros-noetic-rqt-gui-cpp.patch new file mode 100644 index 000000000..6bf7c2eb4 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-cpp/patch/ros-noetic-rqt-gui-cpp.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c352f670..40f28c35 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,7 +10,8 @@ catkin_package( + + include_directories(include ${catkin_INCLUDE_DIRS}) + +-find_package(Qt5Widgets REQUIRED) ++find_package(Qt5 COMPONENTS Widgets REQUIRED) ++find_package(Boost COMPONENTS filesystem REQUIRED) + + SET(rqt_gui_cpp_SRCS + src/rqt_gui_cpp/nodelet_plugin_provider.cpp +@@ -24,7 +25,7 @@ set(rqt_gui_cpp_HDRS + qt5_wrap_cpp(rqt_gui_cpp_MOCS ${rqt_gui_cpp_HDRS}) + + add_library(${PROJECT_NAME} ${rqt_gui_cpp_SRCS} ${rqt_gui_cpp_MOCS}) +-target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} Qt5::Widgets) ++target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} Qt5::Widgets ${Boost_LIBRARIES}) + + if(APPLE) + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") diff --git a/recipes/ros-noetic-rqt-gui-cpp/recipe.yaml b/recipes/ros-noetic-rqt-gui-cpp/recipe.yaml new file mode 100644 index 000000000..dd621fbb9 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-cpp/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-rqt-gui-cpp + version: 0.5.3 +source: + git_url: https://github.com/ros-gbp/rqt-release.git + git_rev: release/noetic/rqt_gui_cpp/0.5.3-1 + folder: ros-noetic-rqt-gui-cpp/src/work + patches: + - patch/ros-noetic-rqt-gui-cpp.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nodelet + - ros-noetic-qt-gui + - ros-noetic-qt-gui-cpp + - ros-noetic-roscpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nodelet + - ros-noetic-qt-gui + - ros-noetic-qt-gui-cpp + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-gui-py/bld_catkin.bat b/recipes/ros-noetic-rqt-gui-py/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-py/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-gui-py/build_catkin.sh b/recipes/ros-noetic-rqt-gui-py/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-py/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-gui-py/recipe.yaml b/recipes/ros-noetic-rqt-gui-py/recipe.yaml new file mode 100644 index 000000000..6cd97d7d9 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui-py/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-gui-py + version: 0.5.3 +source: + git_url: https://github.com/ros-gbp/rqt-release.git + git_rev: release/noetic/rqt_gui_py/0.5.3-1 + folder: ros-noetic-rqt-gui-py/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-gui/bld_catkin.bat b/recipes/ros-noetic-rqt-gui/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-gui/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-gui/build_catkin.sh b/recipes/ros-noetic-rqt-gui/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-gui/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-gui/recipe.yaml b/recipes/ros-noetic-rqt-gui/recipe.yaml new file mode 100644 index 000000000..18b0795ff --- /dev/null +++ b/recipes/ros-noetic-rqt-gui/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-gui + version: 0.5.3 +source: + git_url: https://github.com/ros-gbp/rqt-release.git + git_rev: release/noetic/rqt_gui/0.5.3-1 + folder: ros-noetic-rqt-gui/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-qt-gui + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-image-view/bld_catkin.bat b/recipes/ros-noetic-rqt-image-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-image-view/build_catkin.sh b/recipes/ros-noetic-rqt-image-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch b/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch new file mode 100644 index 000000000..0b8e23b62 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/patch/ros-noetic-rqt-image-view.patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ba4ec83..ea96ab1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,10 +2,9 @@ cmake_minimum_required(VERSION 3.0.2) + + project(rqt_image_view) + +-add_compile_options(-std=c++11) +- + # Load catkin and all dependencies required for this package + find_package(catkin REQUIRED COMPONENTS rqt_gui rqt_gui_cpp image_transport sensor_msgs geometry_msgs cv_bridge) ++find_package(OpenCV) + + if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") + find_package(Qt5Widgets REQUIRED) +@@ -60,7 +59,7 @@ set(CMAKE_CURRENT_BINARY_DIR "${_cmake_current_binary_dir}") + + include_directories(${rqt_image_view_INCLUDE_DIRECTORIES} ${catkin_INCLUDE_DIRS}) + add_library(${PROJECT_NAME} ${rqt_image_view_SRCS} ${rqt_image_view_MOCS} ${rqt_image_view_UIS_H}) +-target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) ++target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) + if("${qt_gui_cpp_USE_QT_MAJOR_VERSION} " STREQUAL "5 ") + target_link_libraries(${PROJECT_NAME} Qt5::Widgets) + else() diff --git a/recipes/ros-noetic-rqt-image-view/recipe.yaml b/recipes/ros-noetic-rqt-image-view/recipe.yaml new file mode 100644 index 000000000..628c00541 --- /dev/null +++ b/recipes/ros-noetic-rqt-image-view/recipe.yaml @@ -0,0 +1,79 @@ +package: + name: ros-noetic-rqt-image-view + version: 0.4.17 +source: + git_url: https://github.com/ros-gbp/rqt_image_view-release.git + git_rev: release/noetic/rqt_image_view/0.4.17-1 + folder: ros-noetic-rqt-image-view/src/work + patches: + - patch/ros-noetic-rqt-image-view.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-sensor-msgs + - setuptools + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-launch/bld_catkin.bat b/recipes/ros-noetic-rqt-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-launch/build_catkin.sh b/recipes/ros-noetic-rqt-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-launch/recipe.yaml b/recipes/ros-noetic-rqt-launch/recipe.yaml new file mode 100644 index 000000000..117af991a --- /dev/null +++ b/recipes/ros-noetic-rqt-launch/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-rqt-launch + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_launch-release.git + git_rev: release/noetic/rqt_launch/0.4.9-1 + folder: ros-noetic-rqt-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-python-qt-binding + - ros-noetic-roslaunch + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslaunch + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat b/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-logger-level/build_catkin.sh b/recipes/ros-noetic-rqt-logger-level/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-logger-level/recipe.yaml b/recipes/ros-noetic-rqt-logger-level/recipe.yaml new file mode 100644 index 000000000..50fa59da7 --- /dev/null +++ b/recipes/ros-noetic-rqt-logger-level/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-logger-level + version: 0.4.12 +source: + git_url: https://github.com/ros-gbp/rqt_logger_level-release.git + git_rev: release/noetic/rqt_logger_level/0.4.12-1 + folder: ros-noetic-rqt-logger-level/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-moveit/bld_catkin.bat b/recipes/ros-noetic-rqt-moveit/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-moveit/build_catkin.sh b/recipes/ros-noetic-rqt-moveit/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-moveit/recipe.yaml b/recipes/ros-noetic-rqt-moveit/recipe.yaml new file mode 100644 index 000000000..422ab0789 --- /dev/null +++ b/recipes/ros-noetic-rqt-moveit/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-moveit + version: 0.5.11 +source: + git_url: https://github.com/ros-gbp/rqt_moveit-release.git + git_rev: release/noetic/rqt_moveit/0.5.11-1 + folder: ros-noetic-rqt-moveit/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rosnode + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-rqt-topic + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-msg/bld_catkin.bat b/recipes/ros-noetic-rqt-msg/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-msg/build_catkin.sh b/recipes/ros-noetic-rqt-msg/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-msg/recipe.yaml b/recipes/ros-noetic-rqt-msg/recipe.yaml new file mode 100644 index 000000000..1809e5889 --- /dev/null +++ b/recipes/ros-noetic-rqt-msg/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-rqt-msg + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_msg-release.git + git_rev: release/noetic/rqt_msg/0.4.10-1 + folder: ros-noetic-rqt-msg/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat b/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-nav-view/build_catkin.sh b/recipes/ros-noetic-rqt-nav-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-nav-view/recipe.yaml b/recipes/ros-noetic-rqt-nav-view/recipe.yaml new file mode 100644 index 000000000..a0672e93a --- /dev/null +++ b/recipes/ros-noetic-rqt-nav-view/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-nav-view + version: 0.5.7 +source: + git_url: https://github.com/ros-gbp/rqt_nav_view-release.git + git_rev: release/noetic/rqt_nav_view/0.5.7-1 + folder: ros-noetic-rqt-nav-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-plot/bld_catkin.bat b/recipes/ros-noetic-rqt-plot/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-plot/build_catkin.sh b/recipes/ros-noetic-rqt-plot/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-plot/recipe.yaml b/recipes/ros-noetic-rqt-plot/recipe.yaml new file mode 100644 index 000000000..b756e152f --- /dev/null +++ b/recipes/ros-noetic-rqt-plot/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rqt-plot + version: 0.4.13 +source: + git_url: https://github.com/ros-gbp/rqt_plot-release.git + git_rev: release/noetic/rqt_plot/0.4.13-2 + folder: ros-noetic-rqt-plot/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - matplotlib-base + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui-py-common + - ros-noetic-qwt-dependency + - ros-noetic-rosgraph + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-std-msgs + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat b/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-pose-view/build_catkin.sh b/recipes/ros-noetic-rqt-pose-view/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-pose-view/recipe.yaml b/recipes/ros-noetic-rqt-pose-view/recipe.yaml new file mode 100644 index 000000000..10a3f1564 --- /dev/null +++ b/recipes/ros-noetic-rqt-pose-view/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-rqt-pose-view + version: 0.5.11 +source: + git_url: https://github.com/ros-gbp/rqt_pose_view-release.git + git_rev: release/noetic/rqt_pose_view/0.5.11-1 + folder: ros-noetic-rqt-pose-view/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - pyopengl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-gl-dependency + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-publisher/bld_catkin.bat b/recipes/ros-noetic-rqt-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-publisher/build_catkin.sh b/recipes/ros-noetic-rqt-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-publisher/recipe.yaml b/recipes/ros-noetic-rqt-publisher/recipe.yaml new file mode 100644 index 000000000..dc685dea1 --- /dev/null +++ b/recipes/ros-noetic-rqt-publisher/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-publisher + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_publisher-release.git + git_rev: release/noetic/rqt_publisher/0.4.10-1 + folder: ros-noetic-rqt-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui-py-common + - ros-noetic-roslib + - ros-noetic-rosmsg + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-py-common/bld_catkin.bat b/recipes/ros-noetic-rqt-py-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-py-common/build_catkin.sh b/recipes/ros-noetic-rqt-py-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-py-common/recipe.yaml b/recipes/ros-noetic-rqt-py-common/recipe.yaml new file mode 100644 index 000000000..1eab8c210 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-common/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-py-common + version: 0.5.3 +source: + git_url: https://github.com/ros-gbp/rqt-release.git + git_rev: release/noetic/rqt_py_common/0.5.3-1 + folder: ros-noetic-rqt-py-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-genmsg + - ros-noetic-genpy + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-genpy + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rosbag + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostopic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-py-console/bld_catkin.bat b/recipes/ros-noetic-rqt-py-console/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-console/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-py-console/build_catkin.sh b/recipes/ros-noetic-rqt-py-console/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-py-console/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-py-console/recipe.yaml b/recipes/ros-noetic-rqt-py-console/recipe.yaml new file mode 100644 index 000000000..432f94d53 --- /dev/null +++ b/recipes/ros-noetic-rqt-py-console/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rqt-py-console + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_py_console-release.git + git_rev: release/noetic/rqt_py_console/0.4.10-1 + folder: ros-noetic-rqt-py-console/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat b/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh b/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-reconfigure/recipe.yaml b/recipes/ros-noetic-rqt-reconfigure/recipe.yaml new file mode 100644 index 000000000..22ed2352d --- /dev/null +++ b/recipes/ros-noetic-rqt-reconfigure/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-reconfigure + version: 0.5.5 +source: + git_url: https://github.com/ros-gbp/rqt_reconfigure-release.git + git_rev: release/noetic/rqt_reconfigure/0.5.5-1 + folder: ros-noetic-rqt-reconfigure/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + - ros-noetic-rostest + - setuptools + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh b/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml b/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml new file mode 100644 index 000000000..6597b8f7a --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-dashboard/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-robot-dashboard + version: 0.5.8 +source: + git_url: https://github.com/ros-gbp/rqt_robot_dashboard-release.git + git_rev: release/noetic/rqt_robot_dashboard/0.5.8-1 + folder: ros-noetic-rqt-robot-dashboard/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-console + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-robot-monitor + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh b/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml b/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml new file mode 100644 index 000000000..41f45753b --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-monitor/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-robot-monitor + version: 0.5.15 +source: + git_url: https://github.com/ros-gbp/rqt_robot_monitor-release.git + git_rev: release/noetic/rqt_robot_monitor/0.5.15-1 + folder: ros-noetic-rqt-robot-monitor/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rospy + - ros-noetic-rqt-bag + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh b/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml b/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml new file mode 100644 index 000000000..a9cfe5878 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-plugins/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-rqt-robot-plugins + version: 0.5.8 +source: + git_url: https://github.com/ros-gbp/rqt_robot_plugins-release.git + git_rev: release/noetic/rqt_robot_plugins/0.5.8-1 + folder: ros-noetic-rqt-robot-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rqt-moveit + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-pose-view + - ros-noetic-rqt-robot-dashboard + - ros-noetic-rqt-robot-monitor + - ros-noetic-rqt-robot-steering + - ros-noetic-rqt-runtime-monitor + - ros-noetic-rqt-rviz + - ros-noetic-rqt-tf-tree + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rqt-moveit + - ros-noetic-rqt-nav-view + - ros-noetic-rqt-pose-view + - ros-noetic-rqt-robot-dashboard + - ros-noetic-rqt-robot-monitor + - ros-noetic-rqt-robot-steering + - ros-noetic-rqt-runtime-monitor + - ros-noetic-rqt-rviz + - ros-noetic-rqt-tf-tree + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat b/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh b/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-robot-steering/recipe.yaml b/recipes/ros-noetic-rqt-robot-steering/recipe.yaml new file mode 100644 index 000000000..9e136d415 --- /dev/null +++ b/recipes/ros-noetic-rqt-robot-steering/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-robot-steering + version: 0.5.12 +source: + git_url: https://github.com/ros-gbp/rqt_robot_steering-release.git + git_rev: release/noetic/rqt_robot_steering/0.5.12-1 + folder: ros-noetic-rqt-robot-steering/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-python-qt-binding + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-runtime-monitor/bld_catkin.bat b/recipes/ros-noetic-rqt-runtime-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-runtime-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-runtime-monitor/build_catkin.sh b/recipes/ros-noetic-rqt-runtime-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-runtime-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-runtime-monitor/recipe.yaml b/recipes/ros-noetic-rqt-runtime-monitor/recipe.yaml new file mode 100644 index 000000000..a2e84a2fe --- /dev/null +++ b/recipes/ros-noetic-rqt-runtime-monitor/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rqt-runtime-monitor + version: 0.5.10 +source: + git_url: https://github.com/ros-gbp/rqt_runtime_monitor-release.git + git_rev: release/noetic/rqt_runtime_monitor/0.5.10-1 + folder: ros-noetic-rqt-runtime-monitor/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-rviz/bld_catkin.bat b/recipes/ros-noetic-rqt-rviz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-rviz/build_catkin.sh b/recipes/ros-noetic-rqt-rviz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-rviz/recipe.yaml b/recipes/ros-noetic-rqt-rviz/recipe.yaml new file mode 100644 index 000000000..f075aec72 --- /dev/null +++ b/recipes/ros-noetic-rqt-rviz/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-rqt-rviz + version: 0.7.0 +source: + git_url: https://github.com/ros-gbp/rqt_rviz-release.git + git_rev: release/noetic/rqt_rviz/0.7.0-1 + folder: ros-noetic-rqt-rviz/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-pluginlib + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-cpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat b/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-service-caller/build_catkin.sh b/recipes/ros-noetic-rqt-service-caller/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-service-caller/recipe.yaml b/recipes/ros-noetic-rqt-service-caller/recipe.yaml new file mode 100644 index 000000000..c5459900a --- /dev/null +++ b/recipes/ros-noetic-rqt-service-caller/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-service-caller + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_service_caller-release.git + git_rev: release/noetic/rqt_service_caller/0.4.10-1 + folder: ros-noetic-rqt-service-caller/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosservice + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-shell/bld_catkin.bat b/recipes/ros-noetic-rqt-shell/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-shell/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-shell/build_catkin.sh b/recipes/ros-noetic-rqt-shell/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-shell/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-shell/recipe.yaml b/recipes/ros-noetic-rqt-shell/recipe.yaml new file mode 100644 index 000000000..8561a1264 --- /dev/null +++ b/recipes/ros-noetic-rqt-shell/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-shell + version: 0.4.11 +source: + git_url: https://github.com/ros-gbp/rqt_shell-release.git + git_rev: release/noetic/rqt_shell/0.4.11-1 + folder: ros-noetic-rqt-shell/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-qt-gui-py-common + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-srv/bld_catkin.bat b/recipes/ros-noetic-rqt-srv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-srv/build_catkin.sh b/recipes/ros-noetic-rqt-srv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-srv/recipe.yaml b/recipes/ros-noetic-rqt-srv/recipe.yaml new file mode 100644 index 000000000..7f8a1cd8e --- /dev/null +++ b/recipes/ros-noetic-rqt-srv/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rqt-srv + version: 0.4.9 +source: + git_url: https://github.com/ros-gbp/rqt_srv-release.git + git_rev: release/noetic/rqt_srv/0.4.9-1 + folder: ros-noetic-rqt-srv/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-msg + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosmsg + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-msg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat b/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh b/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-tf-tree/recipe.yaml b/recipes/ros-noetic-rqt-tf-tree/recipe.yaml new file mode 100644 index 000000000..2d0058839 --- /dev/null +++ b/recipes/ros-noetic-rqt-tf-tree/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rqt-tf-tree + version: 0.6.4 +source: + git_url: https://github.com/ros-gbp/rqt_tf_tree-release.git + git_rev: release/noetic/rqt_tf_tree/0.6.4-1 + folder: ros-noetic-rqt-tf-tree/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-dotgraph + - ros-noetic-rospy + - ros-noetic-rqt-graph + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-top/bld_catkin.bat b/recipes/ros-noetic-rqt-top/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-top/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-top/build_catkin.sh b/recipes/ros-noetic-rqt-top/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-top/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-top/recipe.yaml b/recipes/ros-noetic-rqt-top/recipe.yaml new file mode 100644 index 000000000..7716fbc42 --- /dev/null +++ b/recipes/ros-noetic-rqt-top/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-rqt-top + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_top-release.git + git_rev: release/noetic/rqt_top/0.4.10-1 + folder: ros-noetic-rqt-top/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - psutil + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-topic/bld_catkin.bat b/recipes/ros-noetic-rqt-topic/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-topic/build_catkin.sh b/recipes/ros-noetic-rqt-topic/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-topic/recipe.yaml b/recipes/ros-noetic-rqt-topic/recipe.yaml new file mode 100644 index 000000000..500307b01 --- /dev/null +++ b/recipes/ros-noetic-rqt-topic/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rqt-topic + version: 0.4.13 +source: + git_url: https://github.com/ros-gbp/rqt_topic-release.git + git_rev: release/noetic/rqt_topic/0.4.13-1 + folder: ros-noetic-rqt-topic/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-rostopic + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-std-msgs + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rqt-web/bld_catkin.bat b/recipes/ros-noetic-rqt-web/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-web/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rqt-web/build_catkin.sh b/recipes/ros-noetic-rqt-web/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-web/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rqt-web/recipe.yaml b/recipes/ros-noetic-rqt-web/recipe.yaml new file mode 100644 index 000000000..b505b4f2b --- /dev/null +++ b/recipes/ros-noetic-rqt-web/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rqt-web + version: 0.4.10 +source: + git_url: https://github.com/ros-gbp/rqt_web-release.git + git_rev: release/noetic/rqt_web/0.4.10-1 + folder: ros-noetic-rqt-web/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-python-qt-binding + - ros-noetic-qt-gui + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-webkit-dependency + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ruckig/bld_catkin.bat b/recipes/ros-noetic-ruckig/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ruckig/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ruckig/build_catkin.sh b/recipes/ros-noetic-ruckig/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ruckig/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ruckig/patch/ros-noetic-ruckig.patch b/recipes/ros-noetic-ruckig/patch/ros-noetic-ruckig.patch new file mode 100644 index 000000000..cd8a91159 --- /dev/null +++ b/recipes/ros-noetic-ruckig/patch/ros-noetic-ruckig.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4a94d9d..11d4fd9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,10 +7,10 @@ project(ruckig VERSION 0.9.2 LANGUAGES CXX) + include(GNUInstallDirs) + + +-option(BUILD_EXAMPLES "Build example programs" ON) ++option(BUILD_EXAMPLES "Build example programs" OFF) + option(BUILD_PYTHON_MODULE "Build python module with pybind11" OFF) + option(BUILD_ONLINE_CLIENT "Build online client to calculate Ruckig Pro trajectories" OFF) +-option(BUILD_TESTS "Build tests" ON) ++option(BUILD_TESTS "Build tests" OFF) + option(BUILD_BENCHMARK "Build benchmark" OFF) + option(BUILD_SHARED_LIBS "Build as shared library" ON) + option(EXPOSE_INTERNAL "Expose some internal classes and methods" OFF) diff --git a/recipes/ros-noetic-ruckig/recipe.yaml b/recipes/ros-noetic-ruckig/recipe.yaml new file mode 100644 index 000000000..2d4f7c4a2 --- /dev/null +++ b/recipes/ros-noetic-ruckig/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-ruckig + version: 0.9.2 +source: + git_url: https://github.com/pantor/ruckig-release.git + git_rev: release/noetic/ruckig/0.9.2-1 + folder: ros-noetic-ruckig/src/work + patches: + - patch/ros-noetic-ruckig.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat b/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh b/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch b/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch new file mode 100644 index 000000000..22a979a4d --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/patch/ros-noetic-rviz-imu-plugin.patch @@ -0,0 +1,23 @@ +diff --git a/rviz_imu_plugin/CMakeLists.txt b/rviz_imu_plugin/CMakeLists.txt +index 3c58331..d2a5189 100644 +--- a/rviz_imu_plugin/CMakeLists.txt ++++ b/rviz_imu_plugin/CMakeLists.txt +@@ -6,6 +6,18 @@ find_package(catkin REQUIRED COMPONENTS roscpp rviz) + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This plugin includes Qt widgets, so we must include Qt. + ## We'll use the version that rviz used so they are compatible. + if(rviz_QT_VERSION VERSION_LESS "5") diff --git a/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml b/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml new file mode 100644 index 000000000..01528c4df --- /dev/null +++ b/recipes/ros-noetic-rviz-imu-plugin/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rviz-imu-plugin + version: 1.2.6 +source: + git_url: https://github.com/uos-gbp/imu_tools-release.git + git_rev: release/noetic/rviz_imu_plugin/1.2.6-1 + folder: ros-noetic-rviz-imu-plugin/src/work + patches: + - patch/ros-noetic-rviz-imu-plugin.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat b/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh b/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch b/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch new file mode 100644 index 000000000..13251dd02 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/patch/ros-noetic-rviz-plugin-tutorials.patch @@ -0,0 +1,23 @@ +diff --git a/rviz_plugin_tutorials/CMakeLists.txt b/rviz_plugin_tutorials/CMakeLists.txt +index 01ff2738..1b4b4079 100644 +--- a/rviz_plugin_tutorials/CMakeLists.txt ++++ b/rviz_plugin_tutorials/CMakeLists.txt +@@ -10,6 +10,18 @@ catkin_package() + include_directories(${catkin_INCLUDE_DIRS}) + link_directories(${catkin_LIBRARY_DIRS}) + ++if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL "11") ++ # newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this: ++ # typedef CF_ENUM(int, MyEnum) { ++ # MY_ENUM_THING, ++ # MY_ENUM_OTHER_THING, ++ # # etc... ++ # } ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-elaborated-enum-base -Wno-undef-prefix") ++ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wno-undef-prefix") ++endif() ++ + ## This setting causes Qt's "MOC" generation to happen automatically. + set(CMAKE_AUTOMOC ON) + diff --git a/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml b/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml new file mode 100644 index 000000000..33e97f8b2 --- /dev/null +++ b/recipes/ros-noetic-rviz-plugin-tutorials/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-rviz-plugin-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/rviz_plugin_tutorials/0.11.0-1 + folder: ros-noetic-rviz-plugin-tutorials/src/work + patches: + - patch/ros-noetic-rviz-plugin-tutorials.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rviz + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat b/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh b/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml b/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml new file mode 100644 index 000000000..ab7144c31 --- /dev/null +++ b/recipes/ros-noetic-rviz-python-tutorial/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rviz-python-tutorial + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/rviz_python_tutorial/0.11.0-1 + folder: ros-noetic-rviz-python-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rviz + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat b/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh b/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz-visual-tools/recipe.yaml b/recipes/ros-noetic-rviz-visual-tools/recipe.yaml new file mode 100644 index 000000000..ddd362a21 --- /dev/null +++ b/recipes/ros-noetic-rviz-visual-tools/recipe.yaml @@ -0,0 +1,99 @@ +package: + name: ros-noetic-rviz-visual-tools + version: 3.9.3 +source: + git_url: https://github.com/PickNikRobotics/rviz_visual_tools-release.git + git_rev: release/noetic/rviz_visual_tools/3.9.3-1 + folder: ros-noetic-rviz-visual-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - ogre + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz/bld_catkin.bat b/recipes/ros-noetic-rviz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz/build_catkin.sh b/recipes/ros-noetic-rviz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch new file mode 100644 index 000000000..ccf0fe54a --- /dev/null +++ b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch @@ -0,0 +1,126 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d623dd4e..e4490137 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,11 @@ + cmake_minimum_required(VERSION 3.0.2) + project(rviz) + ++## Restrict Windows header namespace usage ++if(WIN32) ++ add_definitions(-DNOGDI) ++endif() ++ + if (POLICY CMP0042) + cmake_policy(SET CMP0042 NEW) + endif() +@@ -98,10 +103,10 @@ if(APPLE) + endif() + + # Prefer newer vender-specific OpenGL library +-if (POLICY CMP0072) +- cmake_policy(SET CMP0072 NEW) +-endif() +-find_package(OpenGL REQUIRED) ++# if (POLICY CMP0072) ++# cmake_policy(SET CMP0072 NEW) ++# endif() ++# find_package(OpenGL REQUIRED) + + set(CMAKE_AUTOMOC ON) + +@@ -214,7 +219,7 @@ catkin_package( + + #catkin_lint: ignore_once external_directory + include_directories(src ${EXPORT_HEADER_DIR}) +-include_directories(SYSTEM ++include_directories( + ${EIGEN3_INCLUDE_DIRS} + ${OGRE_INCLUDE_DIRS} + ${OPENGL_INCLUDE_DIR} +diff --git a/ogre_media/fonts/ogre1.10.fontdef b/ogre_media/fonts/ogre1.10.fontdef +index 4b3c5b82..e714db0f 100644 +--- a/ogre_media/fonts/ogre1.10.fontdef ++++ b/ogre_media/fonts/ogre1.10.fontdef +@@ -1,3 +1,12 @@ ++Liberation Sans ++{ ++ type truetype ++ source liberation-sans/LiberationSans-Regular.ttf ++ size 18 ++ resolution 96 ++} ++ ++# Ogre >= 1.10 has changed the format + font "Liberation Sans" + { + type truetype +diff --git a/src/python_bindings/sip/CMakeLists.txt b/src/python_bindings/sip/CMakeLists.txt +index efbb497b..d2f4eb9b 100644 +--- a/src/python_bindings/sip/CMakeLists.txt ++++ b/src/python_bindings/sip/CMakeLists.txt +@@ -48,14 +48,21 @@ set(rviz_sip_INCLUDE_DIRS + ${OGRE_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} + ) ++ ++find_package(OpenGL REQUIRED) ++find_package(Threads REQUIRED) + set(rviz_sip_LIBRARIES ${rviz_LIBRARIES} ${PROJECT_NAME}) +-set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}) ++set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION} /usr/lib/x86_64-linux-gnu/) + if (MSVC) + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} /LIBPATH:\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\") + else() + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} -Wl,-rpath,\\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\\") + endif() + ++message(WARNING "rviz_sip_LIBRARIES: ${rviz_sip_LIBRARIES}") ++message(WARNING "rviz_sip_LIBRARY_DIRS: ${rviz_sip_LIBRARY_DIRS}") ++ ++ + if(sip_helper_FOUND) + list(APPEND rviz_BINDINGS "sip") + set(rviz_BINDINGS "${rviz_BINDINGS}" PARENT_SCOPE) +@@ -69,11 +76,21 @@ if(sip_helper_FOUND) + if(DEFINED PYTHON_EXTENSION_MODULE_SUFFIX) + set(rviz_sip_LIBRARY_FILE librviz_sip${PYTHON_EXTENSION_MODULE_SUFFIX}) + elseif(APPLE) +- set(rviz_sip_LIBRARY_FILE librviz_sip.so) ++ # Okay-ish hack for now ++ if(TRUE) ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-darwin.so") ++ else() ++ set(rviz_sip_LIBRARY_FILE librviz_sip.so) ++ endif() + elseif(WIN32) + set(rviz_sip_LIBRARY_FILE librviz_sip.pyd) + else() +- set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ if(TRUE) ++ message(WARNING "Use hack") ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ else() ++ set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ endif() + endif() + #catkin_lint: ignore_once external_file + install(FILES ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz/${rviz_sip_LIBRARY_FILE} +diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp +index 4005f982..c0441de8 100644 +--- a/src/rviz/ogre_helpers/render_system.cpp ++++ b/src/rviz/ogre_helpers/render_system.cpp +@@ -159,9 +159,10 @@ void RenderSystem::setupDummyWindowId() + + void RenderSystem::loadOgrePlugins() + { +- std::string plugin_prefix = get_ogre_plugin_path() + "/"; +-#ifdef Q_OS_MAC +- plugin_prefix += "lib"; ++#ifdef _WIN32 ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "\\Library\\bin\\"; ++#else ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "/lib/OGRE/"; + #endif + ogre_root_->loadPlugin(plugin_prefix + "RenderSystem_GL"); + ogre_root_->loadPlugin(plugin_prefix + "Plugin_OctreeSceneManager"); diff --git a/recipes/ros-noetic-rviz/recipe.yaml b/recipes/ros-noetic-rviz/recipe.yaml new file mode 100644 index 000000000..c79caa955 --- /dev/null +++ b/recipes/ros-noetic-rviz/recipe.yaml @@ -0,0 +1,128 @@ +package: + name: ros-noetic-rviz + version: 1.14.20 +source: + git_url: https://github.com/ros-gbp/rviz-release.git + git_rev: release/noetic/rviz/1.14.20-1 + folder: ros-noetic-rviz/src/work + patches: + - patch/ros-noetic-rviz.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - pyqt-builder + - pyqt5-sip + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - assimp + - eigen + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-interactive-markers + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-python-qt-binding + - ros-noetic-resource-retriever + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml2 + - urdfdom + - urdfdom_headers + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - assimp + - ogre + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-interactive-markers + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-media-export + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-python-qt-binding + - ros-noetic-resource-retriever + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml2 + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-self-test/bld_catkin.bat b/recipes/ros-noetic-self-test/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-self-test/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-self-test/build_catkin.sh b/recipes/ros-noetic-self-test/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-self-test/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-self-test/recipe.yaml b/recipes/ros-noetic-self-test/recipe.yaml new file mode 100644 index 000000000..1c3b51568 --- /dev/null +++ b/recipes/ros-noetic-self-test/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-self-test + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/diagnostics-release.git + git_rev: release/noetic/self_test/1.11.0-1 + folder: ros-noetic-self-test/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-sensor-filters/bld_catkin.bat b/recipes/ros-noetic-sensor-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sensor-filters/build_catkin.sh b/recipes/ros-noetic-sensor-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sensor-filters/recipe.yaml b/recipes/ros-noetic-sensor-filters/recipe.yaml new file mode 100644 index 000000000..457d86549 --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-sensor-filters + version: 1.1.1 +source: + git_url: https://github.com/ctu-vras/sensor_filters-release.git + git_rev: release/noetic/sensor_filters/1.1.1-1 + folder: ros-noetic-sensor-filters/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-filters + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-filters + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-sensor-msgs/bld_catkin.bat b/recipes/ros-noetic-sensor-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sensor-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sensor-msgs/build_catkin.sh b/recipes/ros-noetic-sensor-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sensor-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sensor-msgs/recipe.yaml b/recipes/ros-noetic-sensor-msgs/recipe.yaml new file mode 100644 index 000000000..7c10b5267 --- /dev/null +++ b/recipes/ros-noetic-sensor-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-sensor-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/sensor_msgs/1.13.1-1 + folder: ros-noetic-sensor-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-rosbag + - ros-noetic-rosunit + - ros-noetic-std-msgs + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-shape-msgs/bld_catkin.bat b/recipes/ros-noetic-shape-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-shape-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-shape-msgs/build_catkin.sh b/recipes/ros-noetic-shape-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-shape-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-shape-msgs/recipe.yaml b/recipes/ros-noetic-shape-msgs/recipe.yaml new file mode 100644 index 000000000..3a2d2ee6f --- /dev/null +++ b/recipes/ros-noetic-shape-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-shape-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/shape_msgs/1.13.1-1 + folder: ros-noetic-shape-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-simulators/bld_catkin.bat b/recipes/ros-noetic-simulators/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-simulators/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-simulators/build_catkin.sh b/recipes/ros-noetic-simulators/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-simulators/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-simulators/recipe.yaml b/recipes/ros-noetic-simulators/recipe.yaml new file mode 100644 index 000000000..591507f98 --- /dev/null +++ b/recipes/ros-noetic-simulators/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-simulators + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/simulators/1.5.0-1 + folder: ros-noetic-simulators/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros-pkgs + - ros-noetic-robot + - ros-noetic-rqt-common-plugins + - ros-noetic-rqt-robot-plugins + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-smach-msgs/bld_catkin.bat b/recipes/ros-noetic-smach-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-smach-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-smach-msgs/build_catkin.sh b/recipes/ros-noetic-smach-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-smach-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-smach-msgs/recipe.yaml b/recipes/ros-noetic-smach-msgs/recipe.yaml new file mode 100644 index 000000000..c9a27d67b --- /dev/null +++ b/recipes/ros-noetic-smach-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-smach-msgs + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/smach_msgs/2.5.2-1 + folder: ros-noetic-smach-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-smach-ros/bld_catkin.bat b/recipes/ros-noetic-smach-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-smach-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-smach-ros/build_catkin.sh b/recipes/ros-noetic-smach-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-smach-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-smach-ros/recipe.yaml b/recipes/ros-noetic-smach-ros/recipe.yaml new file mode 100644 index 000000000..1e78fe7a2 --- /dev/null +++ b/recipes/ros-noetic-smach-ros/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-smach-ros + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/smach_ros/2.5.2-1 + folder: ros-noetic-smach-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-rospy + - ros-noetic-rostopic + - ros-noetic-smach + - ros-noetic-smach-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-smach/bld_catkin.bat b/recipes/ros-noetic-smach/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-smach/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-smach/build_catkin.sh b/recipes/ros-noetic-smach/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-smach/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-smach/recipe.yaml b/recipes/ros-noetic-smach/recipe.yaml new file mode 100644 index 000000000..e3f5043e8 --- /dev/null +++ b/recipes/ros-noetic-smach/recipe.yaml @@ -0,0 +1,50 @@ +package: + name: ros-noetic-smach + version: 2.5.2 +source: + git_url: https://github.com/ros-gbp/executive_smach-release.git + git_rev: release/noetic/smach/2.5.2-1 + folder: ros-noetic-smach/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-smclib/bld_catkin.bat b/recipes/ros-noetic-smclib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-smclib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-smclib/build_catkin.sh b/recipes/ros-noetic-smclib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-smclib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-smclib/recipe.yaml b/recipes/ros-noetic-smclib/recipe.yaml new file mode 100644 index 000000000..b833e87b6 --- /dev/null +++ b/recipes/ros-noetic-smclib/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-smclib + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/smclib/1.8.6-1 + folder: ros-noetic-smclib/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-snmp-ros/bld_catkin.bat b/recipes/ros-noetic-snmp-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-snmp-ros/build_catkin.sh b/recipes/ros-noetic-snmp-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-snmp-ros/recipe.yaml b/recipes/ros-noetic-snmp-ros/recipe.yaml new file mode 100644 index 000000000..dd8d09cb9 --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-snmp-ros + version: 1.0.2 +source: + git_url: https://github.com/ctu-vras/snmp_ros-release.git + git_rev: release/noetic/snmp_ros/1.0.2-1 + folder: ros-noetic-snmp-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pysnmp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-srdfdom/bld_catkin.bat b/recipes/ros-noetic-srdfdom/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-srdfdom/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-srdfdom/build_catkin.sh b/recipes/ros-noetic-srdfdom/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-srdfdom/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-srdfdom/recipe.yaml b/recipes/ros-noetic-srdfdom/recipe.yaml new file mode 100644 index 000000000..b28898a81 --- /dev/null +++ b/recipes/ros-noetic-srdfdom/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-srdfdom + version: 0.6.4 +source: + git_url: https://github.com/ros-gbp/srdfdom-release.git + git_rev: release/noetic/srdfdom/0.6.4-1 + folder: ros-noetic-srdfdom/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-rostest + - ros-noetic-urdf + - tinyxml2 + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdf + - ros-noetic-urdfdom-py + - tinyxml2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-static-transform-mux/bld_catkin.bat b/recipes/ros-noetic-static-transform-mux/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-static-transform-mux/build_catkin.sh b/recipes/ros-noetic-static-transform-mux/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-static-transform-mux/recipe.yaml b/recipes/ros-noetic-static-transform-mux/recipe.yaml new file mode 100644 index 000000000..f36a0e4d9 --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-static-transform-mux + version: 1.1.1 +source: + git_url: https://github.com/peci1/static_transform_mux-release.git + git_rev: release/noetic/static_transform_mux/1.1.1-1 + folder: ros-noetic-static-transform-mux/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-tf2-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-std-msgs/bld_catkin.bat b/recipes/ros-noetic-std-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-std-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-std-msgs/build_catkin.sh b/recipes/ros-noetic-std-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-std-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-std-msgs/recipe.yaml b/recipes/ros-noetic-std-msgs/recipe.yaml new file mode 100644 index 000000000..bc7ef7fbf --- /dev/null +++ b/recipes/ros-noetic-std-msgs/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-std-msgs + version: 0.5.13 +source: + git_url: https://github.com/ros-gbp/std_msgs-release.git + git_rev: release/noetic/std_msgs/0.5.13-1 + folder: ros-noetic-std-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-std-srvs/bld_catkin.bat b/recipes/ros-noetic-std-srvs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-std-srvs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-std-srvs/build_catkin.sh b/recipes/ros-noetic-std-srvs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-std-srvs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-std-srvs/recipe.yaml b/recipes/ros-noetic-std-srvs/recipe.yaml new file mode 100644 index 000000000..1816d51e9 --- /dev/null +++ b/recipes/ros-noetic-std-srvs/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-std-srvs + version: 1.11.3 +source: + git_url: https://github.com/ros-gbp/ros_comm_msgs-release.git + git_rev: release/noetic/std_srvs/1.11.3-1 + folder: ros-noetic-std-srvs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat b/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-stereo-image-proc/build_catkin.sh b/recipes/ros-noetic-stereo-image-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-stereo-image-proc/recipe.yaml b/recipes/ros-noetic-stereo-image-proc/recipe.yaml new file mode 100644 index 000000000..b03957ccb --- /dev/null +++ b/recipes/ros-noetic-stereo-image-proc/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-stereo-image-proc + version: 1.17.0 +source: + git_url: https://github.com/ros-gbp/image_pipeline-release.git + git_rev: release/noetic/stereo_image_proc/1.17.0-1 + folder: ros-noetic-stereo-image-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-proc + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-proc + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-sensor-msgs + - ros-noetic-stereo-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-stereo-msgs/bld_catkin.bat b/recipes/ros-noetic-stereo-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-stereo-msgs/build_catkin.sh b/recipes/ros-noetic-stereo-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-stereo-msgs/recipe.yaml b/recipes/ros-noetic-stereo-msgs/recipe.yaml new file mode 100644 index 000000000..f6d992031 --- /dev/null +++ b/recipes/ros-noetic-stereo-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-stereo-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/stereo_msgs/1.13.1-1 + folder: ros-noetic-stereo-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-teb-local-planner/bld_catkin.bat b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-teb-local-planner/build_catkin.sh b/recipes/ros-noetic-teb-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch new file mode 100644 index 000000000..a6f271260 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 97fe249..0bc3d7e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,7 +32,7 @@ message(STATUS "System: ${CMAKE_SYSTEM}") + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_modules) + message(STATUS "${CMAKE_MODULE_PATH}") + find_package(Boost REQUIRED COMPONENTS system thread graph) +-find_package(SUITESPARSE REQUIRED) ++# find_package(SUITESPARSE REQUIRED) + find_package(G2O REQUIRED) + + # Eigen3 FindScript Backward compatibility (ubuntu saucy) +@@ -47,8 +47,8 @@ elseif (EXISTS "FindEigen.cmake") + e.g. by adding it to ${PROJECT_SOURCE_DIR}/cmake_modules.") + endif (EXISTS "FindEigen3.cmake") + +-set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${SUITESPARSE_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) +-set(EXTERNAL_LIBS ${SUITESPARSE_LIBRARIES} ${G2O_LIBRARIES}) ++set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) ++set(EXTERNAL_LIBS ${G2O_LIBRARIES}) + + ## Uncomment this if the package has a setup.py. This macro ensures + ## modules and global scripts declared therein get installed +@@ -163,7 +163,7 @@ catkin_package( + tf2 + tf2_ros + visualization_msgs +- DEPENDS SUITESPARSE G2O ++ DEPENDS G2O + ) + + ########### diff --git a/recipes/ros-noetic-teb-local-planner/recipe.yaml b/recipes/ros-noetic-teb-local-planner/recipe.yaml new file mode 100644 index 000000000..8f78fc2a3 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/recipe.yaml @@ -0,0 +1,92 @@ +package: + name: ros-noetic-teb-local-planner + version: 0.9.1 +source: + git_url: https://github.com/rst-tu-dortmund/teb_local_planner-release.git + git_rev: release/noetic/teb_local_planner/0.9.1-1 + folder: ros-noetic-teb-local-planner/src/work + patches: + - patch/ros-noetic-teb-local-planner.linux.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-teleop-twist-joy/bld_catkin.bat b/recipes/ros-noetic-teleop-twist-joy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-joy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-teleop-twist-joy/build_catkin.sh b/recipes/ros-noetic-teleop-twist-joy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-joy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-teleop-twist-joy/recipe.yaml b/recipes/ros-noetic-teleop-twist-joy/recipe.yaml new file mode 100644 index 000000000..40096db46 --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-joy/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-teleop-twist-joy + version: 0.1.3 +source: + git_url: https://github.com/ros-gbp/teleop_twist_joy-release.git + git_rev: release/noetic/teleop_twist_joy/0.1.3-1 + folder: ros-noetic-teleop-twist-joy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-joy + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-joy + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf-conversions/bld_catkin.bat b/recipes/ros-noetic-tf-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf-conversions/build_catkin.sh b/recipes/ros-noetic-tf-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf-conversions/recipe.yaml b/recipes/ros-noetic-tf-conversions/recipe.yaml new file mode 100644 index 000000000..695e1a304 --- /dev/null +++ b/recipes/ros-noetic-tf-conversions/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-tf-conversions + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/tf_conversions/1.13.2-1 + folder: ros-noetic-tf-conversions/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + run: + - eigen + - orocos-kdl + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat b/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh b/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml b/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml new file mode 100644 index 000000000..18af7a117 --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-tf-remapper-cpp + version: 1.1.1 +source: + git_url: https://github.com/peci1/tf_remapper_cpp-release.git + git_rev: release/noetic/tf_remapper_cpp/1.1.1-1 + folder: ros-noetic-tf-remapper-cpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-tf2-msgs + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf/bld_catkin.bat b/recipes/ros-noetic-tf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf/build_catkin.sh b/recipes/ros-noetic-tf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf/recipe.yaml b/recipes/ros-noetic-tf/recipe.yaml new file mode 100644 index 000000000..11b2cdb07 --- /dev/null +++ b/recipes/ros-noetic-tf/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-tf + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/geometry-release.git + git_rev: release/noetic/tf/1.13.2-1 + folder: ros-noetic-tf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - graphviz + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rosunit + - ros-noetic-roswtf + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + run: + - graphviz + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roswtf + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-bullet/bld_catkin.bat b/recipes/ros-noetic-tf2-bullet/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-bullet/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-bullet/build_catkin.sh b/recipes/ros-noetic-tf2-bullet/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-bullet/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-bullet/recipe.yaml b/recipes/ros-noetic-tf2-bullet/recipe.yaml new file mode 100644 index 000000000..d5d962191 --- /dev/null +++ b/recipes/ros-noetic-tf2-bullet/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-tf2-bullet + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_bullet/0.7.7-1 + folder: ros-noetic-tf2-bullet/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - bullet + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + run: + - bullet + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-client/bld_catkin.bat b/recipes/ros-noetic-tf2-client/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-client/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-client/build_catkin.sh b/recipes/ros-noetic-tf2-client/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-client/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-client/recipe.yaml b/recipes/ros-noetic-tf2-client/recipe.yaml new file mode 100644 index 000000000..6e5c74d55 --- /dev/null +++ b/recipes/ros-noetic-tf2-client/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-tf2-client + version: 1.0.0 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/tf2_client.git + git_rev: release/noetic/tf2_client/1.0.0-2 + folder: ros-noetic-tf2-client/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-eigen/bld_catkin.bat b/recipes/ros-noetic-tf2-eigen/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-eigen/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-eigen/build_catkin.sh b/recipes/ros-noetic-tf2-eigen/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-eigen/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-eigen/recipe.yaml b/recipes/ros-noetic-tf2-eigen/recipe.yaml new file mode 100644 index 000000000..e6518a3a4 --- /dev/null +++ b/recipes/ros-noetic-tf2-eigen/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-tf2-eigen + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_eigen/0.7.7-1 + folder: ros-noetic-tf2-eigen/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat b/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh b/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml b/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml new file mode 100644 index 000000000..768c4b36b --- /dev/null +++ b/recipes/ros-noetic-tf2-geometry-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-tf2-geometry-msgs + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_geometry_msgs/0.7.7-1 + folder: ros-noetic-tf2-geometry-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-ros-environment + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - orocos-kdl + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-kdl/bld_catkin.bat b/recipes/ros-noetic-tf2-kdl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-kdl/build_catkin.sh b/recipes/ros-noetic-tf2-kdl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-kdl/recipe.yaml b/recipes/ros-noetic-tf2-kdl/recipe.yaml new file mode 100644 index 000000000..4c9557eec --- /dev/null +++ b/recipes/ros-noetic-tf2-kdl/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-tf2-kdl + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_kdl/0.7.7-1 + folder: ros-noetic-tf2-kdl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-ros-environment + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - eigen + - orocos-kdl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-msgs/bld_catkin.bat b/recipes/ros-noetic-tf2-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-msgs/build_catkin.sh b/recipes/ros-noetic-tf2-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-msgs/recipe.yaml b/recipes/ros-noetic-tf2-msgs/recipe.yaml new file mode 100644 index 000000000..2f60d31de --- /dev/null +++ b/recipes/ros-noetic-tf2-msgs/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-tf2-msgs + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_msgs/0.7.7-1 + folder: ros-noetic-tf2-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-py/bld_catkin.bat b/recipes/ros-noetic-tf2-py/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-py/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-py/build_catkin.sh b/recipes/ros-noetic-tf2-py/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-py/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-py/recipe.yaml b/recipes/ros-noetic-tf2-py/recipe.yaml new file mode 100644 index 000000000..25ca1e0bf --- /dev/null +++ b/recipes/ros-noetic-tf2-py/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-tf2-py + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_py/0.7.7-1 + folder: ros-noetic-tf2-py/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rospy + - ros-noetic-tf2 + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-ros/bld_catkin.bat b/recipes/ros-noetic-tf2-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-ros/build_catkin.sh b/recipes/ros-noetic-tf2-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-ros/recipe.yaml b/recipes/ros-noetic-tf2-ros/recipe.yaml new file mode 100644 index 000000000..22eb9becf --- /dev/null +++ b/recipes/ros-noetic-tf2-ros/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-tf2-ros + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_ros/0.7.7-1 + folder: ros-noetic-tf2-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-py + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat b/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh b/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml b/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml new file mode 100644 index 000000000..73af29db2 --- /dev/null +++ b/recipes/ros-noetic-tf2-sensor-msgs/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-tf2-sensor-msgs + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_sensor_msgs/0.7.7-1 + folder: ros-noetic-tf2-sensor-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - eigen + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-server/bld_catkin.bat b/recipes/ros-noetic-tf2-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-server/build_catkin.sh b/recipes/ros-noetic-tf2-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-server/recipe.yaml b/recipes/ros-noetic-tf2-server/recipe.yaml new file mode 100644 index 000000000..9dd133d6a --- /dev/null +++ b/recipes/ros-noetic-tf2-server/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-tf2-server + version: 1.1.3 +source: + git_url: https://github.com/peci1/tf2_server-release.git + git_rev: release/noetic/tf2_server/1.1.3-1 + folder: ros-noetic-tf2-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-tools/bld_catkin.bat b/recipes/ros-noetic-tf2-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-tools/build_catkin.sh b/recipes/ros-noetic-tf2-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-tools/recipe.yaml b/recipes/ros-noetic-tf2-tools/recipe.yaml new file mode 100644 index 000000000..c4bec5f80 --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-tf2-tools + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_tools/0.7.7-1 + folder: ros-noetic-tf2-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-tf2 + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2/bld_catkin.bat b/recipes/ros-noetic-tf2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2/build_catkin.sh b/recipes/ros-noetic-tf2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2/patch/ros-noetic-tf2.patch b/recipes/ros-noetic-tf2/patch/ros-noetic-tf2.patch new file mode 100644 index 000000000..64c973c19 --- /dev/null +++ b/recipes/ros-noetic-tf2/patch/ros-noetic-tf2.patch @@ -0,0 +1,12 @@ +diff --git a/tf2/src/buffer_core.cpp b/tf2/src/buffer_core.cpp +index b2eb4877..90b35515 100644 +--- a/tf2/src/buffer_core.cpp ++++ b/tf2/src/buffer_core.cpp +@@ -38,6 +38,7 @@ + #include + #include "tf2/LinearMath/Transform.h" + #include ++#include + + namespace tf2 + { diff --git a/recipes/ros-noetic-tf2/recipe.yaml b/recipes/ros-noetic-tf2/recipe.yaml new file mode 100644 index 000000000..2e5816fc0 --- /dev/null +++ b/recipes/ros-noetic-tf2/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-tf2 + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2/0.7.7-1 + folder: ros-noetic-tf2/src/work + patches: + - patch/ros-noetic-tf2.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-rostime + - ros-noetic-tf2-msgs + run: + - console_bridge + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rostime + - ros-noetic-tf2-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-theora-image-transport/bld_catkin.bat b/recipes/ros-noetic-theora-image-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-theora-image-transport/build_catkin.sh b/recipes/ros-noetic-theora-image-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-theora-image-transport/recipe.yaml b/recipes/ros-noetic-theora-image-transport/recipe.yaml new file mode 100644 index 000000000..257fd2c29 --- /dev/null +++ b/recipes/ros-noetic-theora-image-transport/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-theora-image-transport + version: 1.14.0 +source: + git_url: https://github.com/ros-gbp/image_transport_plugins-release.git + git_rev: release/noetic/theora_image_transport/1.14.0-1 + folder: ros-noetic-theora-image-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libogg + - libtheora + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-std-msgs + run: + - libogg + - libtheora + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-topic-tools/bld_catkin.bat b/recipes/ros-noetic-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-topic-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-topic-tools/build_catkin.sh b/recipes/ros-noetic-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-topic-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-topic-tools/recipe.yaml b/recipes/ros-noetic-topic-tools/recipe.yaml new file mode 100644 index 000000000..e88086185 --- /dev/null +++ b/recipes/ros-noetic-topic-tools/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-topic-tools + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/topic_tools/1.16.0-1 + folder: ros-noetic-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosbash + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rosunit + - ros-noetic-std-msgs + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-trajectory-msgs/bld_catkin.bat b/recipes/ros-noetic-trajectory-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-trajectory-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-trajectory-msgs/build_catkin.sh b/recipes/ros-noetic-trajectory-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-trajectory-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-trajectory-msgs/recipe.yaml b/recipes/ros-noetic-trajectory-msgs/recipe.yaml new file mode 100644 index 000000000..3c5d11739 --- /dev/null +++ b/recipes/ros-noetic-trajectory-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-trajectory-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/trajectory_msgs/1.13.1-1 + folder: ros-noetic-trajectory-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosbag-migration-rule + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-rosbag-migration-rule + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-transmission-interface/bld_catkin.bat b/recipes/ros-noetic-transmission-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-transmission-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-transmission-interface/build_catkin.sh b/recipes/ros-noetic-transmission-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-transmission-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-transmission-interface/recipe.yaml b/recipes/ros-noetic-transmission-interface/recipe.yaml new file mode 100644 index 000000000..4d8ae0155 --- /dev/null +++ b/recipes/ros-noetic-transmission-interface/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-transmission-interface + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/transmission_interface/0.20.0-1 + folder: ros-noetic-transmission-interface/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-resource-retriever + - ros-noetic-roscpp + - tinyxml + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - tinyxml + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat b/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-actionlib/build_catkin.sh b/recipes/ros-noetic-turtle-actionlib/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-actionlib/recipe.yaml b/recipes/ros-noetic-turtle-actionlib/recipe.yaml new file mode 100644 index 000000000..f87ef22a8 --- /dev/null +++ b/recipes/ros-noetic-turtle-actionlib/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-turtle-actionlib + version: 0.2.0 +source: + git_url: https://github.com/ros-gbp/common_tutorials-release.git + git_rev: release/noetic/turtle_actionlib/0.2.0-1 + folder: ros-noetic-turtle-actionlib/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-angles + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-tf/bld_catkin.bat b/recipes/ros-noetic-turtle-tf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-tf/build_catkin.sh b/recipes/ros-noetic-turtle-tf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-tf/recipe.yaml b/recipes/ros-noetic-turtle-tf/recipe.yaml new file mode 100644 index 000000000..3da0d0418 --- /dev/null +++ b/recipes/ros-noetic-turtle-tf/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-turtle-tf + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/turtle_tf/0.2.3-1 + folder: ros-noetic-turtle-tf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtle-tf2/bld_catkin.bat b/recipes/ros-noetic-turtle-tf2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtle-tf2/build_catkin.sh b/recipes/ros-noetic-turtle-tf2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtle-tf2/recipe.yaml b/recipes/ros-noetic-turtle-tf2/recipe.yaml new file mode 100644 index 000000000..a3ea27bcb --- /dev/null +++ b/recipes/ros-noetic-turtle-tf2/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtle-tf2 + version: 0.2.3 +source: + git_url: https://github.com/ros-gbp/geometry_tutorials-release.git + git_rev: release/noetic/turtle_tf2/0.2.3-1 + folder: ros-noetic-turtle-tf2/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-turtlesim + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-turtlesim + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh b/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml b/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml new file mode 100644 index 000000000..8d567b85d --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-bringup/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtlebot3-bringup + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_bringup/1.2.5-1 + folder: ros-noetic-turtlebot3-bringup/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-hls-lfcd-lds-driver + - ros-noetic-joint-state-publisher + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rosserial-python + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-description + - ros-noetic-turtlebot3-msgs + - ros-noetic-turtlebot3-teleop + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-description/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-description/build_catkin.sh b/recipes/ros-noetic-turtlebot3-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-description/recipe.yaml b/recipes/ros-noetic-turtlebot3-description/recipe.yaml new file mode 100644 index 000000000..ee71e75a7 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-description/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-turtlebot3-description + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_description/1.2.5-1 + folder: ros-noetic-turtlebot3-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-urdf + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdf + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-example/build_catkin.sh b/recipes/ros-noetic-turtlebot3-example/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-example/recipe.yaml b/recipes/ros-noetic-turtlebot3-example/recipe.yaml new file mode 100644 index 000000000..f1d731aa6 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-example/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-turtlebot3-example + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_example/1.2.5-1 + folder: ros-noetic-turtlebot3-example/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-turtlebot3-bringup + - ros-noetic-turtlebot3-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh b/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-fake/recipe.yaml b/recipes/ros-noetic-turtlebot3-fake/recipe.yaml new file mode 100644 index 000000000..8759d0d86 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-fake/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-turtlebot3-fake + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_fake/1.3.2-2 + folder: ros-noetic-turtlebot3-fake/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlebot3-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-turtlebot3-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-msgs/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-msgs/build_catkin.sh b/recipes/ros-noetic-turtlebot3-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-msgs/recipe.yaml b/recipes/ros-noetic-turtlebot3-msgs/recipe.yaml new file mode 100644 index 000000000..b3eb10845 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-turtlebot3-msgs + version: 1.0.1 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_msgs-release.git + git_rev: release/noetic/turtlebot3_msgs/1.0.1-1 + folder: ros-noetic-turtlebot3-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh b/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml b/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml new file mode 100644 index 000000000..b914043bb --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-navigation/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-turtlebot3-navigation + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_navigation/1.2.5-1 + folder: ros-noetic-turtlebot3-navigation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-amcl + - ros-noetic-map-server + - ros-noetic-move-base + - ros-noetic-turtlebot3-bringup + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh b/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-slam/recipe.yaml b/recipes/ros-noetic-turtlebot3-slam/recipe.yaml new file mode 100644 index 000000000..6ab06c923 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-slam/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-turtlebot3-slam + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_slam/1.2.5-1 + folder: ros-noetic-turtlebot3-slam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-turtlebot3-bringup + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3-teleop/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-teleop/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-teleop/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3-teleop/build_catkin.sh b/recipes/ros-noetic-turtlebot3-teleop/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-teleop/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3-teleop/recipe.yaml b/recipes/ros-noetic-turtlebot3-teleop/recipe.yaml new file mode 100644 index 000000000..68dfa0085 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-teleop/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-turtlebot3-teleop + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3_teleop/1.2.5-1 + folder: ros-noetic-turtlebot3-teleop/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-rospy + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlebot3/bld_catkin.bat b/recipes/ros-noetic-turtlebot3/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlebot3/build_catkin.sh b/recipes/ros-noetic-turtlebot3/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlebot3/recipe.yaml b/recipes/ros-noetic-turtlebot3/recipe.yaml new file mode 100644 index 000000000..5b1897d68 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-turtlebot3 + version: 1.2.5 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3-release.git + git_rev: release/noetic/turtlebot3/1.2.5-1 + folder: ros-noetic-turtlebot3/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-turtlebot3-bringup + - ros-noetic-turtlebot3-description + - ros-noetic-turtlebot3-example + - ros-noetic-turtlebot3-navigation + - ros-noetic-turtlebot3-slam + - ros-noetic-turtlebot3-teleop + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-turtlesim/bld_catkin.bat b/recipes/ros-noetic-turtlesim/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlesim/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-turtlesim/build_catkin.sh b/recipes/ros-noetic-turtlesim/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlesim/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-turtlesim/recipe.yaml b/recipes/ros-noetic-turtlesim/recipe.yaml new file mode 100644 index 000000000..905f57ede --- /dev/null +++ b/recipes/ros-noetic-turtlesim/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-turtlesim + version: 0.10.2 +source: + git_url: https://github.com/ros-gbp/ros_tutorials-release.git + git_rev: release/noetic/turtlesim/0.10.2-1 + folder: ros-noetic-turtlesim/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-roslib + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost-cpp + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-roslib + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-twist-mux-msgs/bld_catkin.bat b/recipes/ros-noetic-twist-mux-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-twist-mux-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-twist-mux-msgs/build_catkin.sh b/recipes/ros-noetic-twist-mux-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-twist-mux-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-twist-mux-msgs/recipe.yaml b/recipes/ros-noetic-twist-mux-msgs/recipe.yaml new file mode 100644 index 000000000..b26c8f147 --- /dev/null +++ b/recipes/ros-noetic-twist-mux-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-twist-mux-msgs + version: 2.1.0 +source: + git_url: https://github.com/ros-gbp/twist_mux_msgs-release.git + git_rev: release/noetic/twist_mux_msgs/2.1.0-1 + folder: ros-noetic-twist-mux-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-message-runtime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-twist-mux/bld_catkin.bat b/recipes/ros-noetic-twist-mux/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-twist-mux/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-twist-mux/build_catkin.sh b/recipes/ros-noetic-twist-mux/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-twist-mux/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-twist-mux/recipe.yaml b/recipes/ros-noetic-twist-mux/recipe.yaml new file mode 100644 index 000000000..461acbbdd --- /dev/null +++ b/recipes/ros-noetic-twist-mux/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-twist-mux + version: 3.1.3 +source: + git_url: https://github.com/ros-gbp/twist_mux-release.git + git_rev: release/noetic/twist_mux/3.1.3-1 + folder: ros-noetic-twist-mux/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-msgs + - ros-noetic-twist-mux-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-twist-mux-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-geometry-parser/bld_catkin.bat b/recipes/ros-noetic-urdf-geometry-parser/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-geometry-parser/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-geometry-parser/build_catkin.sh b/recipes/ros-noetic-urdf-geometry-parser/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-geometry-parser/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-geometry-parser/recipe.yaml b/recipes/ros-noetic-urdf-geometry-parser/recipe.yaml new file mode 100644 index 000000000..a386adcd5 --- /dev/null +++ b/recipes/ros-noetic-urdf-geometry-parser/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-urdf-geometry-parser + version: 0.1.0 +source: + git_url: https://github.com/ros-gbp/urdf_geometry_parser-release.git + git_rev: release/noetic/urdf_geometry_parser/0.1.0-1 + folder: ros-noetic-urdf-geometry-parser/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-urdf + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-parser-plugin/bld_catkin.bat b/recipes/ros-noetic-urdf-parser-plugin/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-parser-plugin/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-parser-plugin/build_catkin.sh b/recipes/ros-noetic-urdf-parser-plugin/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-parser-plugin/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-parser-plugin/recipe.yaml b/recipes/ros-noetic-urdf-parser-plugin/recipe.yaml new file mode 100644 index 000000000..bd63bdf90 --- /dev/null +++ b/recipes/ros-noetic-urdf-parser-plugin/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-urdf-parser-plugin + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/urdf-release.git + git_rev: release/noetic/urdf_parser_plugin/1.13.2-1 + folder: ros-noetic-urdf-parser-plugin/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - urdfdom_headers + run: + - python + - ros-distro-mutex 0.5 noetic + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat b/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh b/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml b/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml new file mode 100644 index 000000000..8989a5f6c --- /dev/null +++ b/recipes/ros-noetic-urdf-sim-tutorial/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-urdf-sim-tutorial + version: 0.5.1 +source: + git_url: https://github.com/ros-gbp/urdf_sim_tutorial-release.git + git_rev: release/noetic/urdf_sim_tutorial/0.5.1-1 + folder: ros-noetic-urdf-sim-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-controller-manager + - ros-noetic-diff-drive-controller + - ros-noetic-gazebo-ros + - ros-noetic-gazebo-ros-control + - ros-noetic-joint-state-controller + - ros-noetic-position-controllers + - ros-noetic-robot-state-publisher + - ros-noetic-rqt-robot-steering + - ros-noetic-rviz + - ros-noetic-urdf-tutorial + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-controller-manager + - ros-noetic-diff-drive-controller + - ros-noetic-gazebo-ros + - ros-noetic-gazebo-ros-control + - ros-noetic-joint-state-controller + - ros-noetic-position-controllers + - ros-noetic-robot-state-publisher + - ros-noetic-rqt-robot-steering + - ros-noetic-rviz + - ros-noetic-urdf-tutorial + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat b/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf-tutorial/build_catkin.sh b/recipes/ros-noetic-urdf-tutorial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf-tutorial/recipe.yaml b/recipes/ros-noetic-urdf-tutorial/recipe.yaml new file mode 100644 index 000000000..9492421c3 --- /dev/null +++ b/recipes/ros-noetic-urdf-tutorial/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-urdf-tutorial + version: 0.5.0 +source: + git_url: https://github.com/ros-gbp/urdf_tutorial-release.git + git_rev: release/noetic/urdf_tutorial/0.5.0-1 + folder: ros-noetic-urdf-tutorial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot-state-publisher + - ros-noetic-roslaunch + - ros-noetic-rviz + - ros-noetic-xacro + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-robot-state-publisher + - ros-noetic-rviz + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdf/bld_catkin.bat b/recipes/ros-noetic-urdf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdf/build_catkin.sh b/recipes/ros-noetic-urdf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdf/recipe.yaml b/recipes/ros-noetic-urdf/recipe.yaml new file mode 100644 index 000000000..6c49ce2b5 --- /dev/null +++ b/recipes/ros-noetic-urdf/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-urdf + version: 1.13.2 +source: + git_url: https://github.com/ros-gbp/urdf-release.git + git_rev: release/noetic/urdf/1.13.2-1 + folder: ros-noetic-urdf/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-pluginlib + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-urdf-parser-plugin + - tinyxml + - tinyxml2 + - urdfdom + - urdfdom_headers + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pluginlib + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - tinyxml + - tinyxml2 + - urdfdom + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-urdfdom-py/bld_catkin.bat b/recipes/ros-noetic-urdfdom-py/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-urdfdom-py/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-urdfdom-py/build_catkin.sh b/recipes/ros-noetic-urdfdom-py/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-urdfdom-py/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-urdfdom-py/recipe.yaml b/recipes/ros-noetic-urdfdom-py/recipe.yaml new file mode 100644 index 000000000..68f1cf994 --- /dev/null +++ b/recipes/ros-noetic-urdfdom-py/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-urdfdom-py + version: 0.4.6 +source: + git_url: https://github.com/ros-gbp/urdfdom_py-release.git + git_rev: release/noetic/urdfdom_py/0.4.6-1 + folder: ros-noetic-urdfdom-py/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-usb-cam/bld_catkin.bat b/recipes/ros-noetic-usb-cam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-usb-cam/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-usb-cam/build_catkin.sh b/recipes/ros-noetic-usb-cam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-usb-cam/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-usb-cam/recipe.yaml b/recipes/ros-noetic-usb-cam/recipe.yaml new file mode 100644 index 000000000..6ffa1de7b --- /dev/null +++ b/recipes/ros-noetic-usb-cam/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-usb-cam + version: 0.3.7 +source: + git_url: https://github.com/ros-gbp/usb_cam-release.git + git_rev: release/noetic/usb_cam/0.3.7-1 + folder: ros-noetic-usb-cam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - ffmpeg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + run: + - ffmpeg + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-uuid-msgs/bld_catkin.bat b/recipes/ros-noetic-uuid-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-uuid-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-uuid-msgs/build_catkin.sh b/recipes/ros-noetic-uuid-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-uuid-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-uuid-msgs/recipe.yaml b/recipes/ros-noetic-uuid-msgs/recipe.yaml new file mode 100644 index 000000000..c2c0309b1 --- /dev/null +++ b/recipes/ros-noetic-uuid-msgs/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-uuid-msgs + version: 1.0.6 +source: + git_url: https://github.com/ros-geographic-info/unique_identifier-release.git + git_rev: release/noetic/uuid_msgs/1.0.6-1 + folder: ros-noetic-uuid-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velocity-controllers/bld_catkin.bat b/recipes/ros-noetic-velocity-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velocity-controllers/build_catkin.sh b/recipes/ros-noetic-velocity-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velocity-controllers/recipe.yaml b/recipes/ros-noetic-velocity-controllers/recipe.yaml new file mode 100644 index 000000000..fda1cdef1 --- /dev/null +++ b/recipes/ros-noetic-velocity-controllers/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-velocity-controllers + version: 0.21.2 +source: + git_url: https://github.com/ros-gbp/ros_controllers-release.git + git_rev: release/noetic/velocity_controllers/0.21.2-1 + folder: ros-noetic-velocity-controllers/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-description/bld_catkin.bat b/recipes/ros-noetic-velodyne-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-description/build_catkin.sh b/recipes/ros-noetic-velodyne-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-description/recipe.yaml b/recipes/ros-noetic-velodyne-description/recipe.yaml new file mode 100644 index 000000000..b01bf1c96 --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-velodyne-description + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_description/1.0.13-1 + folder: ros-noetic-velodyne-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdf + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..a36378ba4 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-velodyne-gazebo-plugins + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_gazebo_plugins/1.0.13-1 + folder: ros-noetic-velodyne-gazebo-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-simulator/build_catkin.sh b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-simulator/recipe.yaml b/recipes/ros-noetic-velodyne-simulator/recipe.yaml new file mode 100644 index 000000000..ecf51e1a6 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-velodyne-simulator + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_simulator/1.0.13-1 + folder: ros-noetic-velodyne-simulator/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-velodyne-description + - ros-noetic-velodyne-gazebo-plugins + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-vision-opencv/bld_catkin.bat b/recipes/ros-noetic-vision-opencv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-vision-opencv/build_catkin.sh b/recipes/ros-noetic-vision-opencv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-vision-opencv/recipe.yaml b/recipes/ros-noetic-vision-opencv/recipe.yaml new file mode 100644 index 000000000..329e766fe --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-vision-opencv + version: 1.16.2 +source: + git_url: https://github.com/ros-gbp/vision_opencv-release.git + git_rev: release/noetic/vision_opencv/1.16.2-1 + folder: ros-noetic-vision-opencv/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-visualization-marker-tutorials/bld_catkin.bat b/recipes/ros-noetic-visualization-marker-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-visualization-marker-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-visualization-marker-tutorials/build_catkin.sh b/recipes/ros-noetic-visualization-marker-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-visualization-marker-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-visualization-marker-tutorials/recipe.yaml b/recipes/ros-noetic-visualization-marker-tutorials/recipe.yaml new file mode 100644 index 000000000..68351b1a2 --- /dev/null +++ b/recipes/ros-noetic-visualization-marker-tutorials/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-visualization-marker-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/visualization_marker_tutorials/0.11.0-1 + folder: ros-noetic-visualization-marker-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-visualization-msgs/bld_catkin.bat b/recipes/ros-noetic-visualization-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-visualization-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-visualization-msgs/build_catkin.sh b/recipes/ros-noetic-visualization-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-visualization-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-visualization-msgs/recipe.yaml b/recipes/ros-noetic-visualization-msgs/recipe.yaml new file mode 100644 index 000000000..8084be2b6 --- /dev/null +++ b/recipes/ros-noetic-visualization-msgs/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-visualization-msgs + version: 1.13.1 +source: + git_url: https://github.com/ros-gbp/common_msgs-release.git + git_rev: release/noetic/visualization_msgs/1.13.1-1 + folder: ros-noetic-visualization-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat b/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-visualization-tutorials/build_catkin.sh b/recipes/ros-noetic-visualization-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-visualization-tutorials/recipe.yaml b/recipes/ros-noetic-visualization-tutorials/recipe.yaml new file mode 100644 index 000000000..a1ab1cf3b --- /dev/null +++ b/recipes/ros-noetic-visualization-tutorials/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-visualization-tutorials + version: 0.11.0 +source: + git_url: https://github.com/ros-gbp/visualization_tutorials-release.git + git_rev: release/noetic/visualization_tutorials/0.11.0-1 + folder: ros-noetic-visualization-tutorials/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-interactive-marker-tutorials + - ros-noetic-librviz-tutorial + - ros-noetic-rviz-plugin-tutorials + - ros-noetic-rviz-python-tutorial + - ros-noetic-visualization-marker-tutorials + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-interactive-marker-tutorials + - ros-noetic-librviz-tutorial + - ros-noetic-rviz-plugin-tutorials + - ros-noetic-rviz-python-tutorial + - ros-noetic-visualization-marker-tutorials + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-viz/bld_catkin.bat b/recipes/ros-noetic-viz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-viz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-viz/build_catkin.sh b/recipes/ros-noetic-viz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-viz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-viz/recipe.yaml b/recipes/ros-noetic-viz/recipe.yaml new file mode 100644 index 000000000..0606f9918 --- /dev/null +++ b/recipes/ros-noetic-viz/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-viz + version: 1.5.0 +source: + git_url: https://github.com/ros-gbp/metapackages-release.git + git_rev: release/noetic/viz/1.5.0-1 + folder: ros-noetic-viz/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ros-base + - ros-noetic-rqt-common-plugins + - ros-noetic-rqt-robot-plugins + - ros-noetic-rviz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-voxel-grid/bld_catkin.bat b/recipes/ros-noetic-voxel-grid/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-voxel-grid/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-voxel-grid/build_catkin.sh b/recipes/ros-noetic-voxel-grid/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-voxel-grid/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-voxel-grid/recipe.yaml b/recipes/ros-noetic-voxel-grid/recipe.yaml new file mode 100644 index 000000000..7d0e73b97 --- /dev/null +++ b/recipes/ros-noetic-voxel-grid/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-voxel-grid + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/voxel_grid/1.17.3-1 + folder: ros-noetic-voxel-grid/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-warehouse-ros/bld_catkin.bat b/recipes/ros-noetic-warehouse-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-warehouse-ros/build_catkin.sh b/recipes/ros-noetic-warehouse-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-warehouse-ros/recipe.yaml b/recipes/ros-noetic-warehouse-ros/recipe.yaml new file mode 100644 index 000000000..09823dd25 --- /dev/null +++ b/recipes/ros-noetic-warehouse-ros/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-warehouse-ros + version: 0.9.5 +source: + git_url: https://github.com/ros-gbp/warehouse_ros-release.git + git_rev: release/noetic/warehouse_ros/0.9.5-1 + folder: ros-noetic-warehouse-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostime + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-webkit-dependency/bld_catkin.bat b/recipes/ros-noetic-webkit-dependency/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-webkit-dependency/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-webkit-dependency/build_catkin.sh b/recipes/ros-noetic-webkit-dependency/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-webkit-dependency/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-webkit-dependency/recipe.yaml b/recipes/ros-noetic-webkit-dependency/recipe.yaml new file mode 100644 index 000000000..1825a9809 --- /dev/null +++ b/recipes/ros-noetic-webkit-dependency/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-webkit-dependency + version: 1.1.2 +source: + git_url: https://github.com/ros-gbp/webkit_dependency-release.git + git_rev: release/noetic/webkit_dependency/1.1.2-1 + folder: ros-noetic-webkit-dependency/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pyqtwebengine + - python + - ros-distro-mutex 0.5 noetic + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-xacro/bld_catkin.bat b/recipes/ros-noetic-xacro/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-xacro/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-xacro/build_catkin.sh b/recipes/ros-noetic-xacro/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-xacro/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-xacro/recipe.yaml b/recipes/ros-noetic-xacro/recipe.yaml new file mode 100644 index 000000000..f2b072aec --- /dev/null +++ b/recipes/ros-noetic-xacro/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-xacro + version: 1.14.17 +source: + git_url: https://github.com/ros-gbp/xacro-release.git + git_rev: release/noetic/xacro/1.14.17-2 + folder: ros-noetic-xacro/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roslaunch + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-xmlrpcpp/bld_catkin.bat b/recipes/ros-noetic-xmlrpcpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-xmlrpcpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-xmlrpcpp/build_catkin.sh b/recipes/ros-noetic-xmlrpcpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-xmlrpcpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-xmlrpcpp/recipe.yaml b/recipes/ros-noetic-xmlrpcpp/recipe.yaml new file mode 100644 index 000000000..91375201c --- /dev/null +++ b/recipes/ros-noetic-xmlrpcpp/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-xmlrpcpp + version: 1.16.0 +source: + git_url: https://github.com/ros-gbp/ros_comm-release.git + git_rev: release/noetic/xmlrpcpp/1.16.0-1 + folder: ros-noetic-xmlrpcpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 11 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cpp-common + - ros-noetic-rostime + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/vinca.yaml b/vinca.yaml new file mode 100644 index 000000000..878638d22 --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,187 @@ +ros_distro: noetic +mutex_package: ros-distro-mutex 0.5 noetic + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 11 + +# Ignore all dependencies of selected packages +skip_all_deps: false + +# If full rebuild, the build number of the existing package has +# to match the selected build number for skipping +full_rebuild: true + +packages_skip_by_deps: + # - diagnostic_updater + - eigenpy + - hpp-fcl + - pinocchio + +packages_remove_from_deps: + - stage-ros + - stage + +skip_existing: + # - https://conda.anaconda.org/robostack/ + - https://conda.anaconda.org/robostack-staging/ + +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . +packages_select_by_deps: + - cras_cpp_common # maintainer peci1 + - cras_py_common # maintainer peci1 + - cras_docs_common # maintainer peci1 + - cras_topic_tools # maintainer peci1 + - image_transport_codecs # maintainer peci1 + - point_cloud_transport # maintainer peci1 + - point_cloud_transport_plugins # maintainer peci1 + - draco_point_cloud_transport # maintainer peci1 + - sensor_filters # maintainer peci1 + - cras_relative_positional_controller # maintainer peci1 + - cras_msgs # maintainer peci1 + - compass_msgs # maintainer peci1 + - magnetometer_compass # maintainer peci1; does not work on aarch64 in pull requests due to cross-compiling (but okay on master branch) + - electronic_io_msgs # maintainer peci1 + - electronic_io # maintainer peci1 + - point_cloud_color # maintainer peci1 + - rosmsg_cpp # maintainer peci1 + - snmp_ros # maintainer peci1 + - robot_body_filter # maintainer peci1 + - static_transform_mux # maintainer peci1 + - tf_remapper_cpp # maintainer peci1 + - roslint # maintainer peci1 + - tf2_server # maintainer peci1 + - rosbash_params # maintainer peci1 + - dynamic_robot_state_publisher # maintainer peci1 + - tf2_client # maintainer peci1 + - tf_static_publisher # maintainer peci1 + - movie_publisher # maintainer peci1 + - geometric_shapes + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - rviz_visual_tools + - rgbd-launch + - microstrain-inertial-driver + - microstrain-inertial-msgs + - usb-cam + - octomap-ros + - octomap-mapping + - octomap-server + - ackermann-msgs + - fake-localization + - realsense2-description + + - rqt-gui + - catkin + - kdl-parser-py + - imu-tools + - rqt-controller-manager + - dynamixel-sdk + - hector-map-tools + - hector-nav-msgs + - hector-trajectory-server + - radar-msgs + - geometry2 + - tf2 + - tf2_bullet + - tf2_eigen + - tf2_geometry_msgs + - tf2_kdl + - tf2_msgs + - tf2_py + - tf2_ros + - tf2_sensor_msgs + - tf2_tools + - ros_control + - ros_controllers + - cv-camera + - four-wheel-steering-msgs + - urdf-geometry-parser + - gps-common + - rosbridge_suite + - pcl-ros + - pcl-conversions + # ## Only limited number of packages to reduce maintainer burden + - desktop + - amcl + - map-server + - move-base + - gmapping + - moveit + - robot_localization + - perception + - simulators + - desktop_full + - audio-common-msgs + # - sound-play + + # For jackal + - hector-gazebo-plugins + - gazebo-dev + - gazebo-ros + - gazebo-ros-control + - gazebo-plugins + - lms1xx + - controller-manager + - interactive_marker_twist_server + - diff-drive-controller + - joint-state-controller + - joy + - velodyne-gazebo-plugins + - velodyne-simulator + - effort-controllers + - velocity-controllers + - robot-localization + - teleop-twist-joy + - twist-mux + - pointgrey-camera-description + - nmea-msgs + - geometry-msgs + - nmea-navsat-driver + - rosserial-server + - imu-filter-madgwick + - rosserial-python + - ros_numpy + - franka_msgs + - teb_local_planner + - rospy-message-converter + - turtlebot3 + - turtlebot3_fake + - pid + + + + ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED + # # after rebuild + # - foxglove_bridge + + # # # DONE + # - pybind11_catkin # needs to be unvendored + # - libfranka + # - cnpy + # - moveit_visual_tools + # - rviz_visual_tools + # - rviz_imu_plugin + # - slam_toolbox + # - webots-ros + # - mavros + # - grid_map + # - imu_complementary_filter + # - imu_filter_madgwick + # - slam_karto + # - rosserial + # - robot_upstart + # - nmea_comms + # - urg_node + # - velodyne_pointcloud + +patch_dir: patch diff --git a/vinca_4c9a35f2b8.json b/vinca_4c9a35f2b8.json new file mode 100644 index 000000000..fca44ec1f --- /dev/null +++ b/vinca_4c9a35f2b8.json @@ -0,0 +1 @@ +{"packages":{"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py39hf04ec0a_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.19.5,<2.0a0","python","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39hf04ec0a_1","timestamp":1670448758285,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d8dac19d48fd55d8613402498a746475","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":502382,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"393f6c741afd4d5386a5f0d0062f00e6836ca21c368b92f678541e68a4e26cd2"},"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549387591,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"63c0bcba1bd5373651197aeb03694e6b","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":78704,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caec44e64893f3cc15263581c9b5ca3a34dc65766675e0eccb8814d0150a8bf6"},"ros-humble-rosbag2-storage-mcap-testdata-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642092995,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"611c66898163d4d823d723481cb13c06","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":86084,"version":"0.15.4","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fb05a432d0fe244757c7c98f0f5beab0d494fd482d2930399a9b3c0543c7297"},"ros-humble-mcap-vendor-0.6.0-py39h4bf7c20_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h4bf7c20_1","timestamp":1670448865047,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"eb76a7b84ca69977c360a8854858a62b","name":"ros-humble-mcap-vendor","requires":[],"size":679833,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0cd06c331c4df8dbe858062c5d4be88e6b6eee3d45386cc517222996160e2f7"},"ros-humble-mcap-vendor-0.6.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541321354,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4df73267dc52af26fc6b54bcc71e4f07","name":"ros-humble-mcap-vendor","requires":[],"size":269661,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fedcafba254c394ab025d59153e958acb2eeaeeb9b3f60d64676e6513868765e"},"ros-humble-mcap-vendor-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635493567,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"97012556d6fefa9ed58b43ff9f683a6b","name":"ros-humble-mcap-vendor","requires":[],"size":258189,"version":"0.15.4","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05ae3f9308a564dd33c66f399308348746c3429442e14bb0a837620bfae08bb5"},"ros-humble-nav2-collision-monitor-1.1.3-py39h4bf7c20_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h4bf7c20_1","timestamp":1670448931706,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ead79852768b1263b4fc6464f18e6f10","name":"ros-humble-nav2-collision-monitor","requires":[],"size":351706,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00bb86b07cd93b22d1bd18c34d69ef315e2152d1c6b0ac0851454650df1045b5"},"ros-humble-nav2-collision-monitor-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641951089,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6b3e8d00f7a6078e71d9eca32a28a05b","name":"ros-humble-nav2-collision-monitor","requires":[],"size":368288,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6882c9cb42257f1722924734698e6bbc12a4aa98cb781ee176198308400c29dc"},"ros-humble-nav2-collision-monitor-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723788761,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7728bf1e2c59fcb7980abf919c5a2f07","name":"ros-humble-nav2-collision-monitor","requires":[],"size":371819,"version":"1.1.5","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ce619a493491636d2feb805a555004cc6b2ab5470407d006325d1b9c87997a7"},"ros-humble-tl-expected-1.0.2-py39h4bf7c20_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h4bf7c20_1","timestamp":1670448710776,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2c4bd62456334b487b83b5ddbea440b8","name":"ros-humble-tl-expected","requires":[],"size":421242,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5463f99aafdcedd9e36c5f7ee73700efe2b971c423019494ba101deaa6e25b91"},"ros-humble-tl-expected-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540713138,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"04f3e781a20dbc6d8fbe458acd511c0f","name":"ros-humble-tl-expected","requires":[],"size":20451,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9197bbb519976ed0f7d9f2d52c8387731a09210824244e37d039a1d45fdc2ae3"},"ros-humble-tl-expected-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634908437,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9db09a704969ac883622307694f20029","name":"ros-humble-tl-expected","requires":[],"size":21513,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f8277930b4d7bfaf8b4e26ed3c8933aee5ddb254e6af1e75794eddcbf7ece85"},"ros-humble-ros-gz-bridge-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-trajectory-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674555903716,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4d3d12567d99cb025513744e5002dab1","name":"ros-humble-ros-gz-bridge","requires":[],"size":2394357,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"123cfaedfb4209f96b5da8ed5ae9ba0cfeb3015c47ee039badb936133258d5d8"},"ros-humble-ros-gz-bridge-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-trajectory-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720021709,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d8d5254f7709438d590cc93acf6c633e","name":"ros-humble-ros-gz-bridge","requires":[],"size":2375850,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fa78314d0725a0eaeb458a7dac73822681ddbe5a24c87c9dec94fd81843c998"},"ros-humble-kinematics-interface-0.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696919278569,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"d430e3f22cc91c20f6fe6bcbee29bd94","name":"ros-humble-kinematics-interface","requires":[],"size":16237,"version":"0.1.0","binstar":{"package_id":"6391074e66b3e4e3dec8e369","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92de629d598fc57d1459ccda171321f0827ac9876ece9bb4470fee82342d9ee7"},"ros-humble-sdformat-urdf-1.0.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsdformat12 >=12.6.0,<13.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","urdfdom_headers"],"build":"py310hb58d347_2","timestamp":1670547374854,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"240e668e826e430d9339ff760a8796e1","name":"ros-humble-sdformat-urdf","requires":[],"size":131490,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e4db48db511328ba9b8e7d42da125e2e7fb8fc43dc7d4bdc8cc46f2f75056f4"},"ros-humble-sdformat-urdf-1.0.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsdformat12 >=12.6.0,<13.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","urdfdom_headers"],"build":"py310h010ba66_3","timestamp":1675640475231,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1ab6054475377bbe3ccea1d67a2b4f6b","name":"ros-humble-sdformat-urdf","requires":[],"size":134020,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"100fdc1506586848f34b3e981fcc058f2ef13a427c08b4ee954623964b88cba1"},"ros-humble-ament-cmake-clang-format-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542007600,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6c3195c52a7ece05f63683d56aadb8e1","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":10747,"version":"0.12.4","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbaf5d0ef07c565f1852ff3d75fd1914eebae9c28009c170decff20aa6f80f59"},"ros-humble-ament-cmake-clang-format-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635896408,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5c55969f4db4abdd53ff4d558cdab81","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":11809,"version":"0.12.5","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f2915cfdfdc396489753cb8109837db952d7e89410854b6ffbfa323c03137c8"},"ros-humble-octomap-1.9.8-h6a33a49_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["octomap 1.9.*"],"build":"h6a33a49_2","timestamp":1670535728364,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"09434d2df14f10e52be1f897b62fd2b6","name":"ros-humble-octomap","requires":[],"size":2888,"version":"1.9.8","binstar":{"package_id":"639258fd2dd70620554cbdaa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9744d3ca48d0124a672d243340413b9423166a69877e36907ae05ce1c2b4fdbe"},"ros-humble-ament-cmake-core-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-package","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670536592673,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f2a32ae2d0b66390038d400556eee280","name":"ros-humble-ament-cmake-core","requires":[],"size":30873,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6ec6532ae69f8974f9606c87bc51240da6e3d129094780eb4b58cc6cf255894"},"ros-humble-ament-cmake-core-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-package","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675631872107,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6daa1dfcce89ab8c8737144017ff7241","name":"ros-humble-ament-cmake-core","requires":[],"size":34022,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55418cb71ece737556e6f7601a5573381b93f5f73fa9533a9d045b38ee099274"},"ros-humble-ament-package-0.14.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","setuptools"],"build":"py310hb58d347_2","timestamp":1670536169863,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7c8e851d4b516ce06fc0eb3c78fdf8c0","name":"ros-humble-ament-package","requires":[],"size":32128,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38309d2cc4189c10d2ed6a9417ff01ec5971d2d50a66b78ebca78e4921a335b8"},"ros-humble-ament-package-0.14.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","setuptools"],"build":"py310h010ba66_3","timestamp":1675631453709,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c6735c0b5bae74c21fe34a5b37766d61","name":"ros-humble-ament-package","requires":[],"size":37467,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0e46c8d485f33fc8929ac06b435bd1c3e08b64db67883c3231603a25381c115"},"ros2-distro-mutex-0.2.0-humble.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","ogre 1.12.*","libpqxx 6.*","setuptools 61.0.0*"],"build_number":0,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":[],"build":"humble","timestamp":1670535713386,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7327cb181065e5b89bd366d97f7030dc","name":"ros2-distro-mutex","requires":[],"size":3386,"version":"0.2.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64851f00f0525b85ccdafc8258c995008175db4de50105bb3eb28ee12254d770"},"ros2-distro-mutex-0.3.0-humble.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","libpqxx 6.*","setuptools 61.0.0*"],"build_number":0,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":[],"build":"humble","timestamp":1675631029108,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"981f1f6dcdeba4cfad2e0205db463f72","name":"ros2-distro-mutex","requires":[],"size":3376,"version":"0.3.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b236e4c2cb05ade18a4f0cfb7ffeb80f567c62a53a7c29102af3b12eacd4502"},"ros-humble-ros-workspace-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537026139,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"094d74289a6eaf313f0c27973e7d68ae","name":"ros-humble-ros-workspace","requires":[],"size":21708,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4a5539bd5e960859270a7da0b6a100621c0f560520d50c19ba18538b83109bd"},"ros-humble-ros-workspace-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632281329,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"81a0c5ad1c6e8ce5bad0b0d13ca83f1e","name":"ros-humble-ros-workspace","requires":[],"size":26856,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f24c61ee7d9591eb9db0a1f0d5299874857ed979cd2a98c0b31dce2c76511c71"},"ros-humble-ros-environment-3.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537067308,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"46d121ac1506c87db045cfd5a2157624","name":"ros-humble-ros-environment","requires":[],"size":9775,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7f183512a431f3db7747d4c640c2e45818f3e517c73b4eb2131c4e0c731f89a"},"ros-humble-ros-environment-3.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632271729,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4ea352775f7e0c9f038da39bcf5020fd","name":"ros-humble-ros-environment","requires":[],"size":10668,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e69684cebb58f8b7bfaf17741ab7f4b46d52178342884928cd997975249219bc"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537495624,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"91dc19eddf611e4bd969d8d4dacd696c","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":12447,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00400e6036450b8a1671bf9a1a9b1f2e88bbd9087d5a8dafbac5475444c12c9b"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632645768,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"675bf15e972cd20653f505ab977cd650","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":13416,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b53b4321230ad5015b994b539ece621c58d80d59208e7df026ddb0509cab228"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537480727,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54f2eb674b01818342db8fe53f66d697","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":10369,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"158d43ba3998c797a08458466aed299cfa36dac49e4bfa61a6aa80fb860a7b82"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632642818,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"151251ec83daf3c712f81c0004c41f18","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":11345,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"275b039c4d9e436e951ecefcf5801a73e7feb1b53156ef9ca1d568d8ecde0b23"},"ros-humble-ament-cmake-version-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537444840,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c2aac638f17722205ba53b9aa9c2588c","name":"ros-humble-ament-cmake-version","requires":[],"size":10168,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3618e1ce9700212ba4710150d889dcb6e87195107dccb780ec4f78191e66dd32"},"ros-humble-ament-cmake-version-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632648867,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4cf72fca3e526b8a9e2cb3f3538a5df0","name":"ros-humble-ament-cmake-version","requires":[],"size":11149,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87bc5a3c93147e4e9ed7cfd0710b48b0c702a141fcb26c697b9739d47373d849"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537480584,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f64a96139d37a35900ddc33b6b79f5b9","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":10417,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e18eed9feb481059d51ae73924ecf2e0f400072e2e25a61efb59474a06e92bd"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632643358,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"32d99925366663c1ba03fd708826c494","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":11393,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"550b71a7c9f7ce9416b25c1126658e65274fe7140d2463e5c5e9a7f7cbcb88b4"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537444371,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bceed54ec8d04f152890157bfac69da5","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":10753,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25db98dcafc1373a0d6fd8faa87eaaa3abc57dda3d5385af40ceb62d8827215f"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632646458,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"28d364ed46b7be0a6f41ea20ce08cd96","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":11733,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"342ec7141f1bd9881306df68630e46f08c6c6abcf7c71929c8587821d0d845b5"},"ros-humble-osrf-pycommon-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537446700,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1d1ecad7d5bfca2e3761ec7c4547a7a8","name":"ros-humble-osrf-pycommon","requires":[],"size":48635,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c8509a4e93acafbd4dadbc8ebd4cb11624d07812a9a39518459c25448116fc8"},"ros-humble-osrf-pycommon-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632654006,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"24342d45a415adb10892e8f1d06dc731","name":"ros-humble-osrf-pycommon","requires":[],"size":64951,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7ad73dc987c70a90ed231fd479be77b318524c958ae0aee192492eab1b82bd4"},"ros-humble-iceoryx-hoofs-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libacl >=2.3.1,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537517400,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3b2711e3021bb3ed0b2bf2d1412b844f","name":"ros-humble-iceoryx-hoofs","requires":[],"size":263272,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d261094b4ed218cdafc10b249f55a7d9dfc72db2ceb9b1674886c2386e8e917"},"ros-humble-iceoryx-hoofs-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libacl >=2.3.1,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632659244,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"43d4cccf69b10c68205dada7f7407026","name":"ros-humble-iceoryx-hoofs","requires":[],"size":259106,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"199758ab7e1bf1483c3d8c931c8ec6f514d19e4b5764da23762147fa47c8904e"},"ros-humble-google-benchmark-vendor-0.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["benchmark","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537502281,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7d23d78ec8ffec05c912be69b6907496","name":"ros-humble-google-benchmark-vendor","requires":[],"size":7068,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff7af73538b4f2cc823a891c4afd7dd4e6abe84b38ec2a1edf5bc96549b22122"},"ros-humble-google-benchmark-vendor-0.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["benchmark","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632654950,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"73845ba2cb5bedfb6cbea973bf9df728","name":"ros-humble-google-benchmark-vendor","requires":[],"size":8076,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67eff99cb34f9ab2b237938c80a21cd9fd3713d12666e785b8e6f43c75cfdc74"},"ros-humble-ruckig-0.6.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537525223,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0333dd87576ec266aac36ed8b4096148","name":"ros-humble-ruckig","requires":[],"size":89905,"version":"0.6.3","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e6a70d9168a303f46b0f4a37b978f4417b732a4665bb567b7698fc0004cc316"},"ros-humble-ruckig-0.9.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632702100,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"290350cf1b8949396386f5afc6d46019","name":"ros-humble-ruckig","requires":[],"size":95405,"version":"0.9.2","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f85d74d3a899de37fe3862f0daa4a76b2bd3bf19ec11e2be29f2b8f3780d9246"},"ros-humble-ament-pycodestyle-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pycodestyle","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537441650,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5c4f71fc8df33f6ae45d66dee3f12366","name":"ros-humble-ament-pycodestyle","requires":[],"size":12124,"version":"0.12.4","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71cc85c4d90ddc7f195d7e77d686358c223182c73b0a9b9086486397db3c0507"},"ros-humble-ament-pycodestyle-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pycodestyle","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632649760,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"103285c93458e54b10817d646ee5e0a1","name":"ros-humble-ament-pycodestyle","requires":[],"size":16173,"version":"0.12.5","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8822f7db60ee6019f05b66b4756eef60422d6c7dd6f64f2d381b4be6f3b40afb"},"ros-humble-test-interface-files-0.9.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537532497,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2c24b1941f3c9e7e5ef2db799d896142","name":"ros-humble-test-interface-files","requires":[],"size":12377,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a025efd7866d3b51aa3c7880ab3405bce318d48b16e2713be04f1f01b4a969e"},"ros-humble-test-interface-files-0.9.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632648520,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b589ea9c3570fb59cd623e583390f75","name":"ros-humble-test-interface-files","requires":[],"size":13258,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbba38c54b30fee27074a027e1867f38564ca20d936f598eb2c25a9d7ae6ae2d"},"ros-humble-ament-cppcheck-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["cppcheck","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537486823,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4965f1261dc92d8b6629e836cea02b18","name":"ros-humble-ament-cppcheck","requires":[],"size":15488,"version":"0.12.4","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1a67eb3ff5116d80f2e90bdd0a747f58d246cf5fe81ea83adaa3cf6979f2a19"},"ros-humble-ament-cppcheck-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["cppcheck","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632659353,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"31fa18c500d164d6ca27a6e96e34c9a7","name":"ros-humble-ament-cppcheck","requires":[],"size":22142,"version":"0.12.5","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f65d4ec0abe88549ca18fed709595f6cbf48710db782dc70a719d187a0ffe3b5"},"ros-humble-urdfdom-headers-1.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537443786,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"53657ad1fc33930539f1817dbea03619","name":"ros-humble-urdfdom-headers","requires":[],"size":18936,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50806a4a350259e5d17057cc3f185a472358fdfaafa74a5059c20391232bfc46"},"ros-humble-urdfdom-headers-1.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632647914,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"afa8931e5d8be4f5902248554ed0ac52","name":"ros-humble-urdfdom-headers","requires":[],"size":20055,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20952a5353d60e0b9930f043919e3815bc2fd09b006917c62bd62695c7d9c246"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537492236,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af91ddaaf41046c9198dbb8bca28d11b","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4331863,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdb044d817e5add6a0640671262821a0965b7e439e3758887140ec7331dadb1d"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632678957,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"63aed7a3c42fbec6e6b5b36c2dcabd13","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4331088,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1fb37df486afeb9a0acae5e7215e6c83e541c5fd5b7c9fdfe712499e226e9dd0"},"ros-humble-fastcdr-1.0.24-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537457975,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4a6d1d3c1ec28f0c12aadda0ae1a6ddd","name":"ros-humble-fastcdr","requires":[],"size":52485,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af6c51596a7df8c79216890a59365fa064215aeef66bd5583168ce8c6a039676"},"ros-humble-fastcdr-1.0.24-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632651247,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"848c3eb28530d52b482bc5f0d30697fc","name":"ros-humble-fastcdr","requires":[],"size":53581,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4ea1faefbea639f4252b7c6879949aed4eba25dd689448a4efc9e33b4ccbab9"},"ros-humble-ament-lint-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537448830,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41b958aeac329249438dc963ffb68eb6","name":"ros-humble-ament-lint","requires":[],"size":7530,"version":"0.12.4","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b17674f8a0eb38b8ea238d491a3343017881ef2fbe534d665721f4a6ddaff253"},"ros-humble-ament-lint-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632649528,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6bec637c1d5f5394615dac5bd458f4ef","name":"ros-humble-ament-lint","requires":[],"size":8140,"version":"0.12.5","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55054a423abb3755cacb0ae3d9ae4cba9c8b59a9ed570fec0efaf354e6112f3e"},"ros-humble-ament-cmake-libraries-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537483911,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1098edcfa6e8895a4a47307b7f771b69","name":"ros-humble-ament-cmake-libraries","requires":[],"size":10691,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1c44ec70e7305237ba00201a805f92058eb140c068445e8b81ac69bbe2bfa90"},"ros-humble-ament-cmake-libraries-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632649406,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"586cd8907a564f4dbe8a42f1a015b08e","name":"ros-humble-ament-cmake-libraries","requires":[],"size":11669,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ada4033b53202254804d4962b8f7bd8b803b3aedd494b0f014b7c0cceb484f3"},"ros-humble-ament-cmake-python-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537490847,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7411088f09ea54ee9a6e52f3996fe17e","name":"ros-humble-ament-cmake-python","requires":[],"size":12673,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"801a782b8cdf6cc17e857c299c1930e19e743b6dc531d13c7acc6c82a5983b3d"},"ros-humble-ament-cmake-python-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632648032,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d20f62d458ed675ac2e74d32bd10110c","name":"ros-humble-ament-cmake-python","requires":[],"size":13610,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c27fb44cea81258ba0f6c810cddf865c15eb355c12e825277f59513bcfc6cbc"},"ros-humble-ament-cmake-include-directories-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537459743,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"81af9ea53f344478f8927a524bfa9bc9","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":10302,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbd0ccfd02f5f228e9f3e0bd5b4279b9f2f8d0f7a28dc6499eaf97be795a54d2"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632649727,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"792be6a99b863efb39cc536e34b11ffa","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":11235,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"547008dad5b707c1934179a4c870b5b0eded2cc104f8e51f2f10c74dcd9edd66"},"ros-humble-gtest-vendor-1.10.9004-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670537442303,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03b60367be2126455de2cdf5aa07bf47","name":"ros-humble-gtest-vendor","requires":[],"size":176579,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3eeef3cf7dda9cb7b090cdd8431cecd3bdefcc334df453e22529de7d50a60b3"},"ros-humble-gtest-vendor-1.10.9004-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632636473,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"96821197e06c3c0d08dc7cd54f2fda80","name":"ros-humble-gtest-vendor","requires":[],"size":184883,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d26e3e0412987efdf19cab694c6cd1ee1b748d95c7e66d86860253d567a8773"},"ros-humble-ompl-1.5.2-py310h8edd21c_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h8edd21c_2","timestamp":1670538308923,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49f0e1b1c788914889d054b2f5bd1fc5","name":"ros-humble-ompl","requires":[],"size":36216,"version":"1.5.2","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbab356d4cd40dea162869e8f58e2b17f1fa1cf19dfbd6d04c74ddc6844469cb"},"ros-humble-ompl-1.6.0-py310h4cc2161_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h4cc2161_3","timestamp":1675632969990,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3c8d23fed483ba59e38b64342a137e88","name":"ros-humble-ompl","requires":[],"size":2790583,"version":"1.6.0","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"636fca46506d27a304715ba6b64f4df6c5a08cd08af4d2230be1a34a4dbdced8"},"ros-humble-sdformat-test-files-1.0.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538345202,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b771532e32e86dcd1d60031a51ba627","name":"ros-humble-sdformat-test-files","requires":[],"size":101228,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef23fab19092c4088748fd95ba48d6847ffad144d6737e109d7ef0fe937b1cb3"},"ros-humble-sdformat-test-files-1.0.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675632643698,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f19fc21a0ca831a8a4ceb7d66211c419","name":"ros-humble-sdformat-test-files","requires":[],"size":102427,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ca1d43d1ecdcf343d1b1b424f450f4b9a2bd13e1d908c5f286e3fb74bb020f4"},"ros-humble-ament-cmake-test-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538797139,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d74f61a90d6c14c47ef383ae5f79ce95","name":"ros-humble-ament-cmake-test","requires":[],"size":20770,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd2b03875c64cd270d598d0f5302659d445ac72beb61473f000a1273eab047b0"},"ros-humble-ament-cmake-test-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633350873,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"555af9b969f8e4190d608486c8f93f13","name":"ros-humble-ament-cmake-test","requires":[],"size":29313,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d150626eaffb2c71fa4f9f93e44466d1eb8827f400789f0a958e7b941bfb19c5"},"ros-humble-ament-cmake-export-targets-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538780792,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7b854203115dd4ac4345a1fa1067acd7","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":10896,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4dd9e5bfde94f5ddc29003a64f70294c56d25fd996972b129760ab4ac2b5362e"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633353383,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0983c8aec4439504c54f05721e63c01c","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":11845,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f23b72bb8e04dc7691867fb84f50b3b9cc8240f68b7ad86ba47a76a28365c44"},"ros-humble-ament-flake8-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["flake8","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538750961,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7ea6ab4e6b23072bc45ad5e675bb5e65","name":"ros-humble-ament-flake8","requires":[],"size":14871,"version":"0.12.4","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e282f71fb33426294ae133504507207b9af79815785ec3c86a98441363d56c92"},"ros-humble-ament-flake8-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["flake8","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633348971,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5ab6404cfb160679406fdbb54a42082","name":"ros-humble-ament-flake8","requires":[],"size":21103,"version":"0.12.5","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"695166dc87e5b60ebe93e05fae13fdc5abff21f18ff94d5db006a9f5bdb9374f"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538753903,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8f0443fc7ba8751d165283540e456d0f","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":10933,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00f649f55bbea221070a23434b1f743beb2e8cd87a3e01af0f7c4b1fa8502f07"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633353123,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03aeabd918e3d4dd7480879cdad23de5","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":11889,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61b1adac8bdaf4d1f0d428d9c3758636ab52fa5f51d5a814f1c9f0df4a670691"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538743256,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"be3a73591826525c5c0dcdfc970c51fd","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":11814,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f7f666d945d13c2fc4d77d03388666b60c1f8dd17553eba8df191e17f02607f"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633350991,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a9e63011c3c110d1aa4881bb62322b2b","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":12770,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1109873f294f1644d0498c095134820de0cd1765c247dd21b9289a9a6baea7e"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538791616,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"80f607fd5af6a615911f208ea4bfeda2","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":11206,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de9043ed3de77cb099a21ee1f1a087fcb08412f71e6336823649fd1cf0a04133"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633370177,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"34bdb2dc5b09e6145d3a8d20bf32898b","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":12187,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1d369aed0490910d5356a134151a231eed195542bc0bda16be3ee309ac6db79"},"ros-humble-iceoryx-posh-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538906707,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b00ba104b8dd107ec10f36382015088","name":"ros-humble-iceoryx-posh","requires":[],"size":583181,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2dd76ccacda5c2a996946c019583c32c1c75e88ca770d3c8b481f87ffae53c58"},"ros-humble-iceoryx-posh-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633421898,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"be9a8915933afe581ca03aa6954f14fe","name":"ros-humble-iceoryx-posh","requires":[],"size":602614,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9afc3b871febe12543da8e7ef6a9bbc4943154f48b9dcdabec06f11b9f4b2c0"},"ros-humble-gmock-vendor-1.10.9004-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670538746685,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"771c5a8a1ed249e2fb12049fa88d9569","name":"ros-humble-gmock-vendor","requires":[],"size":98225,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a053cedc7c8a1d9465e88bf92d623ec0078ef97979f8ac711ecd5e0d5f72b680"},"ros-humble-gmock-vendor-1.10.9004-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633345627,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"204953b2d7f0485cfc5ac63baa98b3ca","name":"ros-humble-gmock-vendor","requires":[],"size":99350,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa8994adfdc88c48d4ed9896e2775af5532b8066ddb43bc956c8b3587da844d7"},"ros-humble-ament-lint-auto-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539287666,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"20ffdec838782202be79d446d5f6a8a5","name":"ros-humble-ament-lint-auto","requires":[],"size":10380,"version":"0.12.4","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4da90be54edfe00603c3294d03278258d8b9947475f07f768d6ef80ea4a4412c"},"ros-humble-ament-lint-auto-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633781574,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e99f223dc0c05b11309b5bf3eadea94b","name":"ros-humble-ament-lint-auto","requires":[],"size":11312,"version":"0.12.5","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edf848ac06e26694bda47c6bb59992a2a0495b3d468ff02ebded97cbd649a147"},"ros-humble-ament-pep257-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pydocstyle","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539341110,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bb2bf3f22fe496973d8b5e5d8d088997","name":"ros-humble-ament-pep257","requires":[],"size":13885,"version":"0.12.4","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9887083f3d6320c33f10049954acaf7adc3cda3f8b23eeb7db52e3ae64c7ccd4"},"ros-humble-ament-pep257-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pydocstyle","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633791183,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5bf00f81a765d0e36fc28e6edd11c9e7","name":"ros-humble-ament-pep257","requires":[],"size":19278,"version":"0.12.5","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f02818af376289c5380840ef37e820f5f139dbf6c330868dd4597fa543076af3"},"ros-humble-ament-cmake-pytest-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pytest","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539285933,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"21e3c697edeb5bacaa2ea8ac30e59b61","name":"ros-humble-ament-cmake-pytest","requires":[],"size":12252,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be1f702d048864d0476922216934ef792540c09ebcd0cde2fa85b51c0462323f"},"ros-humble-ament-cmake-pytest-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633784862,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e9ffcb3d8d7964a998cf500c6889bc2","name":"ros-humble-ament-cmake-pytest","requires":[],"size":13277,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f8f3a9800d7d0f20e6790601486a2e1189d496c2e8c8d48f1a30eeb600658d8"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539334084,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bd3f7177aa87c7bfd594458fe8ad3011","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":18527,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06a72ce94ce4a5f47de9acda2a5fbfe20994ac409a7421ce2f35460691eb6a0b"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633787523,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b146cef2f5d36baa5e539e0903c77c9e","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":23329,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc4c26907509f0683a3ebcf8cfca68431e2ccbc3ad683b3c07a1967fa2691e5c"},"ros-humble-ament-cmake-gtest-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539384565,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f2eafe7f52809bdc9b3a65df60d65023","name":"ros-humble-ament-cmake-gtest","requires":[],"size":12862,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72f358d4d6a26abed2c20b713032019f47093b5683f68949bbcad244c12dfd8e"},"ros-humble-ament-cmake-gtest-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633777271,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b7b81efa267a6fb255e15dc43450c883","name":"ros-humble-ament-cmake-gtest","requires":[],"size":13847,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42e5bb4274f35bbf50c27b6babf8ca8832e352de34f0abb97579e4c286ad4b2c"},"ros-humble-iceoryx-binding-c-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539342065,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4867ebeabe20b7071e3f1d4b153c1c65","name":"ros-humble-iceoryx-binding-c","requires":[],"size":83202,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"625526c59be3129db73926bf27d883da58467963bca1497f8473c3e79271874f"},"ros-humble-iceoryx-binding-c-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633787975,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a0e54320e3b7c9ce007729955caad5ab","name":"ros-humble-iceoryx-binding-c","requires":[],"size":84317,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a74f259caf20c1cfa1d35ed031b807cba1119edc7b65d628426909accbec2071"},"ros-humble-ament-mypy-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","mypy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539307141,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1c01469584855f19622e564fef4ddc1b","name":"ros-humble-ament-mypy","requires":[],"size":13591,"version":"0.12.4","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e7c1e22c71432c4450f9760c8cc31d7e20bede5fd8ff7ff865e8385f5f3879e"},"ros-humble-ament-mypy-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","mypy","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675633788345,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30e1146a2b04e85e3a86825a9d1ecfc0","name":"ros-humble-ament-mypy","requires":[],"size":19136,"version":"0.12.5","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b0c4cf1959be4eea72d78b7159377f4bbb5af9a1cbad8a9ec49b2564e506fe7"},"ros-humble-cyclonedds-0.9.1-py310hd17c61e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd17c61e_2","timestamp":1670539891679,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f86730af11251ee1618e45e416ab46da","name":"ros-humble-cyclonedds","requires":[],"size":1196164,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9593e1c58bd847ca8afbfcabec4634f8f9493642e8581704be6917511588dcc"},"ros-humble-cyclonedds-0.9.1-py310h0594c84_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0594c84_3","timestamp":1675859031340,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7cf034baa779830ebf8956ac5aa75607","name":"ros-humble-cyclonedds","requires":[],"size":1181920,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd1d53ffd3747a0b544ad50d85696efcc80dfbbd58ebad2373df6676adebcb66"},"ros-humble-ament-cmake-gmock-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gmock","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539765678,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7db91045cacf01130e0398aa9094b15e","name":"ros-humble-ament-cmake-gmock","requires":[],"size":12221,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"341153f7a812011fa8f7aa880c50817b629254c153f239325c6e4c329a8a3203"},"ros-humble-ament-cmake-gmock-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gmock","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634149702,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fb417a8bbd7b4e6794417408de593935","name":"ros-humble-ament-cmake-gmock","requires":[],"size":13241,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22b61a534a58dee1897d8067c5bbedfa620304e91e56b39611f313b0d25d0144"},"ros-humble-ament-copyright-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539782277,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"57674981168d07d6161d656b50fd113f","name":"ros-humble-ament-copyright","requires":[],"size":47237,"version":"0.12.4","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5532c4b52be59c9bbd7992a19f29e8bc0177448703b87d0e2f075890ef3f6006"},"ros-humble-ament-copyright-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634161541,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad90e545a57836e9c6e92860de967401","name":"ros-humble-ament-copyright","requires":[],"size":61500,"version":"0.12.5","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb6d9b1bea508832a3c7cb49c0c24619388663d35db57c057c2acbe83c1c516d"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670539824616,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a0b492dae1a890de58fb8dd1b641c40a","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":12796,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bf7e5114c57d5b9bec7c5124bb9dbac2c53c36fb81a67895db3555bffbc65f2"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634153562,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c7cb5d6947b42b36051e293786bd2b99","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":13766,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05b9e2b459ae5f15f14e17de341715c89143d3003bde640de11a234bfc692596"},"ros-humble-tf-transformations-1.0.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684265686595,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e9eb3e41b13e3fdd30838f7a6ba19dfd","name":"ros-humble-tf-transformations","requires":[],"size":37095,"version":"1.0.1","binstar":{"package_id":"6392646ca2b7121008f64795","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b7dadb264cac0d2e9b93d7aa49e9c3d2edf9ce24d46552dde44da8fb48c0230"},"ros-humble-domain-coordinator-0.10.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540312352,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b08f64508ae84b6ed120f3d9bd61b8e","name":"ros-humble-domain-coordinator","requires":[],"size":9055,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cf3f36bfc929e272f1125da05de3f99e18e2bf227f9a92206562befdcab4cb9"},"ros-humble-domain-coordinator-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634526866,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d99abd425bbaceef9fcb99000c3d162b","name":"ros-humble-domain-coordinator","requires":[],"size":10584,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77c932ecddf5bcfe906188fe4f1b336ba4dd0ab18178d335e42fa45deaf862e6"},"ros-humble-ament-clang-format-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["clang-format","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540331730,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9b88ee6c3329c963e92ec4998bc40534","name":"ros-humble-ament-clang-format","requires":[],"size":15777,"version":"0.12.4","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c336c80e0aa679dbe4ee705d915f5af61ffc90ae0e937acbb612a656ec3f32bc"},"ros-humble-ament-clang-format-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["clang-format","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634538017,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"53a0337ca0b16d8bed37f640db5ad5cf","name":"ros-humble-ament-clang-format","requires":[],"size":23730,"version":"0.12.5","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d3d66a0621673542b8f3f4726ff9586141ef2a5bc14c97d6728402dc946a5f1"},"ros-humble-generate-parameter-library-py-0.3.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["jinja2","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","typeguard"],"build":"py310hb58d347_2","timestamp":1670540277907,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd01954f06e2bd2563c4bf91652ec3dd","name":"ros-humble-generate-parameter-library-py","requires":[],"size":27711,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42b7dc9a74d78d8d0999fb7683b3f1077eb5fe01c8e9620ba01d206cf277d29a"},"ros-humble-generate-parameter-library-py-0.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["jinja2","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","typeguard"],"build":"py310h010ba66_3","timestamp":1675634524804,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"25f5d1c06b0d705e1ee82ddb1c146abf","name":"ros-humble-generate-parameter-library-py","requires":[],"size":43057,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44f73a2fc08bd7843278a14962ce588528fa18cd923016480a9c6314e6d4b172"},"ros-humble-ament-cpplint-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540339874,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"73cbba0e285ca646ca23c2c3563dc531","name":"ros-humble-ament-cpplint","requires":[],"size":118770,"version":"0.12.4","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"821adf709be3b76ade31f22c4d6c06622e907ea45f12b5751ecbd19959dad45d"},"ros-humble-ament-cpplint-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634531322,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"018822741f76b46ae324598837fbfa3a","name":"ros-humble-ament-cpplint","requires":[],"size":188390,"version":"0.12.5","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1af7bc2ff8abc8bf0b0b8d4d52af31ff2006bd2e150696b6223b8781338c90d"},"ros-humble-ament-xmllint-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libxml2","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540296166,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"25097484da1125fc7f24f198df4478bc","name":"ros-humble-ament-xmllint","requires":[],"size":14292,"version":"0.12.4","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"805f82354df9f5226b0a7608f4c236a0fff46ee6cece700d957f60cebad9451b"},"ros-humble-ament-xmllint-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libxml2","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634531306,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4cca323d765b89a31aed7a76cc7fbd03","name":"ros-humble-ament-xmllint","requires":[],"size":20159,"version":"0.12.5","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ea039cc9ad8d52947523232413f4f5fd6003ec898ed387cada3ef530b64ac53"},"ros-humble-ament-cmake-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540334327,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9f1e17e53c2e82e8dc6165cd3425378b","name":"ros-humble-ament-cmake","requires":[],"size":10350,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"772a2bc62af08408985f88c306d96212a8401dcdd1e2f2e4221715d7b8505fba"},"ros-humble-ament-cmake-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634534342,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5b3050211f8c5ba8ff4765d2bdf97563","name":"ros-humble-ament-cmake","requires":[],"size":11356,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff4316d773dbbb8fb47ce696e11af2eba82b69f70aa6758bbb704f17f2b3e1a9"},"ros-humble-ament-index-python-1.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540270417,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0563a330119bf81349b48ac7e76d9d5a","name":"ros-humble-ament-index-python","requires":[],"size":15672,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9349ed646a02b04552f0f6519bcf5a32d849ecfcf8e704974ccc358de951254"},"ros-humble-ament-index-python-1.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634525916,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d6138f1427544612ce599b8335a67eaf","name":"ros-humble-ament-index-python","requires":[],"size":21083,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7902ba56caf675b891aa1e63a528432b41df3945fcb78953ba26aabd5f7dd1b"},"ros-humble-ament-lint-cmake-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540289108,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c99e3951379d138cfa252067fd1bcff4","name":"ros-humble-ament-lint-cmake","requires":[],"size":22555,"version":"0.12.4","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8adca4742ec4b1f15ece9b2cd99f5cfc032605f628f61d8e7e30d5c9ae1981c5"},"ros-humble-ament-lint-cmake-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634534357,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ae5c993fbc7f0700fd5f820cba429ef4","name":"ros-humble-ament-lint-cmake","requires":[],"size":35740,"version":"0.12.5","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"920aaccc30861dd757607baa9432550f420729f1eb9c3a43236384f0d747f357"},"ros-humble-tinyxml-vendor-0.8.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310hb58d347_2","timestamp":1670540743600,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b8171fd957ff89619c36ef5e5b03803e","name":"ros-humble-tinyxml-vendor","requires":[],"size":10557,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c8d205a9d22356dcc6ed99259be505cd2558f0914a7aa2727fe11a9886ee04b"},"ros-humble-tinyxml-vendor-0.8.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h010ba66_3","timestamp":1675634893773,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9ab765d17d84b426a17c58403fbdae9d","name":"ros-humble-tinyxml-vendor","requires":[],"size":11581,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59fe94fb44417069d7152959016ea41dd3345eafd90dc4a3cbb7aebefec99f4b"},"ros-humble-eigen-stl-containers-1.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540704905,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d3d5e70afbabf838c444b1d60082a09","name":"ros-humble-eigen-stl-containers","requires":[],"size":11357,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9275e22440b0a02502e0a3549e7707bdcba7f319a856e02a64e115f567f86717"},"ros-humble-eigen-stl-containers-1.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634901331,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f267d8eaf81162e1504bbd15f33a50d8","name":"ros-humble-eigen-stl-containers","requires":[],"size":12374,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f20d9b7df553d60e3860cc6391e71686adbd376d56d85a20a444346102995195"},"ros-humble-shared-queues-vendor-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540744524,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03a30cd0d5e95c8c9bf850bacb80f0fe","name":"ros-humble-shared-queues-vendor","requires":[],"size":51147,"version":"0.15.3","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8543644175b7381151ac0c8f37255e6f8efd882030bd4d19e135d88d49db183d"},"ros-humble-shared-queues-vendor-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634910626,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e9c88abb1c9366ae3dfe0c8ebe67b9ce","name":"ros-humble-shared-queues-vendor","requires":[],"size":52188,"version":"0.15.4","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4ca766a42b38db21952e1ee04425dc2ae9340c2e8233d7c44e97d1f80857b11"},"ros-humble-pybind11-vendor-2.4.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pybind11","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540781916,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f79fb5126711303bab16dd618036bd94","name":"ros-humble-pybind11-vendor","requires":[],"size":9197,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddd7f3705d1a1f4440fe727fd7f67575494ae7ea334b3f136032cf60b5b9618b"},"ros-humble-pybind11-vendor-2.4.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pybind11","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634912065,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"045b5d5da66b5b7ce8b904dd520da5ed","name":"ros-humble-pybind11-vendor","requires":[],"size":10257,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c420fd31ab2fbdfa2ebaa254262275fa2b53a5486e166ee8f820c988bd4040d"},"ros-humble-yaml-cpp-vendor-8.0.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310hb58d347_2","timestamp":1670540703701,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a8cc9a604ec735f32f06bf07f138211","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":9464,"version":"8.0.1","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ff454a2287a5c4f178ce28bc9074bd754a1862680edef1dac74c8d16270bd85"},"ros-humble-yaml-cpp-vendor-8.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h010ba66_3","timestamp":1675634889994,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a062eadc659bdd5d5b456433e9089d4e","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":10490,"version":"8.0.2","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f465c2920c472be92f48aa4afcdbbd163f368bc439f3a21cd2f099dc78b6053"},"ros-humble-libcurl-vendor-3.1.0-py310h6f016d8_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libcurl >=7.86.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pkg-config","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h6f016d8_2","timestamp":1670540741662,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"18caf3bafdddb7a30ef96d5466d70b94","name":"ros-humble-libcurl-vendor","requires":[],"size":9994,"version":"3.1.0","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f674fea2ae44ee234a1920e63c08af7219eb392dae41d0f2802bd388a806264d"},"ros-humble-libcurl-vendor-3.1.1-py310h48a3096_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libcurl >=7.87.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pkg-config","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h48a3096_3","timestamp":1675634902945,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5d6d82cdcfbbf7116df4253bb031ec6e","name":"ros-humble-libcurl-vendor","requires":[],"size":11011,"version":"3.1.1","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd57bf23c06858d495828ed0236fd580c3fbfc287d0d4c3de8fc06382c4ea23d"},"ros-humble-tinyxml2-vendor-0.7.5-py310h61101ba_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h61101ba_2","timestamp":1670540779609,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3ff1bbefbf1e240bd385b5ac2be5c075","name":"ros-humble-tinyxml2-vendor","requires":[],"size":10756,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de62d8f2fe1186ddd19a4942c5d7a3f2b7e6ecf9a22942255a217e7d73ef9c70"},"ros-humble-tinyxml2-vendor-0.7.5-py310h96ca280_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h96ca280_3","timestamp":1675634895638,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f62d3145c8cf0385da1430a4ae19cd7c","name":"ros-humble-tinyxml2-vendor","requires":[],"size":11732,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2982a79a83c21f1e3ee2a10ab145a3de825b505a5d09fa885ade653848dcf42a"},"ros-humble-random-numbers-2.0.1-py310h5d61e26_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5d61e26_2","timestamp":1670540804393,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5695690bdcbe72ec1540f72c831dec02","name":"ros-humble-random-numbers","requires":[],"size":39997,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22ceeae0169f0ea6f0ed5a45bf7b786be63aa116f606923b3e104af20157e04b"},"ros-humble-random-numbers-2.0.1-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h405a52e_3","timestamp":1675634935790,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"647ed1aeee0b44ffe4ad704ddf2a6b11","name":"ros-humble-random-numbers","requires":[],"size":41000,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfbe5eb98acee3e04c1c0c4f2a90795846ec13f4b07f7114545d757c32d655bb"},"ros-humble-tcb-span-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540748775,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"eddaf4ac18bb674a7f4fd45ac993d7db","name":"ros-humble-tcb-span","requires":[],"size":14394,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b51dedd448dfebe17acaabaa6f8c3b7609d5d4b9f33becdd5fbf0b0869e91aed"},"ros-humble-tcb-span-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634904259,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"13ba59887b813c9bd2a4c640445fc46d","name":"ros-humble-tcb-span","requires":[],"size":15481,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37f0b43b2353b50472ef28271d2d8067b54de458d4e8853664a5ebcab79d96ec"},"ros-humble-backward-ros-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["elfutils >=0.188,<0.189.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540730142,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e1d22bb5ecc22690e0522b52964c195","name":"ros-humble-backward-ros","requires":[],"size":340848,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3fba06bf7df266d3adf44c95569ac4e61f7b4fbfe0ae323db86cff862446299"},"ros-humble-backward-ros-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["elfutils >=0.188,<0.189.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634924718,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1f40f8e7e8e4eae3df4a8efc60224596","name":"ros-humble-backward-ros","requires":[],"size":341534,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c01d540b9a3f0fb69c4d143dff2b7915bd8642a9b8ed8e0d8ea56ff614ffda91"},"ros-humble-moveit-resources-panda-description-2.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540751619,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fcffbce6287e8d052ed1b3f1516ab5cb","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3800217,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c3b7fa45dbb7bc04e8cf1b00b72a7814db70753b7aa398a93fafbd5cc1b2e22"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634894882,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ffcec689ead255f71dc4d559ce0a3ceb","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3804924,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88d0158995ae350f13a055db408eb3aa7cf972f0d7c26a362c6459ed9b564efe"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540722447,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"32520509c2a311eccfa1f29891de7304","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25868780,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be84dad678d5de3dbc68d0fb8485e4e9966ea58900801c332106fb7dcf880968"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635011135,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0bfae4313d8375e00e0c12dd53fb7415","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25904029,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14c8bb22085b814df1b6a3af6f050e3e329ae7be693583caa8388a50c2ff2902"},"ros-humble-sqlite3-vendor-0.15.3-py310ha864c97_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sqlite"],"build":"py310ha864c97_2","timestamp":1670540699771,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0ed96bdb298feb82492660e32decfec9","name":"ros-humble-sqlite3-vendor","requires":[],"size":10765,"version":"0.15.3","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1eb0d099a93eca7c002fa8f231908f647f53efdf3f46d98bef91ed25bd21f9d"},"ros-humble-sqlite3-vendor-0.15.4-py310hf7edd95_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sqlite"],"build":"py310hf7edd95_3","timestamp":1675634892603,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af6198a7838c42b4ab1bc6c54469dd77","name":"ros-humble-sqlite3-vendor","requires":[],"size":11742,"version":"0.15.4","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a7e3b7919b13a2da9d01bfa52e203d51eaac8f9a4049998fc172283339b04c5"},"ros-humble-zstd-vendor-0.15.3-py310he29f7e5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zstd >=1.5.2,<1.6.0a0"],"build":"py310he29f7e5_2","timestamp":1670540803493,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"000bd7647a79453702e099796cee625d","name":"ros-humble-zstd-vendor","requires":[],"size":10069,"version":"0.15.3","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e466accf0bafb2b89a7fb14731daee9824c643da45e3cf6436d5855f2838a449"},"ros-humble-zstd-vendor-0.15.4-py310h1a34b65_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zstd >=1.5.2,<1.6.0a0"],"build":"py310h1a34b65_3","timestamp":1675635049781,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74ff4028e69307a5bb30e9ecd8741ef5","name":"ros-humble-zstd-vendor","requires":[],"size":11124,"version":"0.15.4","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6da501c913d3dedaff3bcb4f7ffca4ca7d9e182c2d066254e195e66882085583"},"ros-humble-angles-1.15.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540744774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7ff1942ad355f2dcc8dcb63a8d4be919","name":"ros-humble-angles","requires":[],"size":19172,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7966f72c8f53796f3ae5fd3cc81cc2f88828981c8570e9c403dd345fca7953b5"},"ros-humble-angles-1.15.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634909781,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"63bd760ec7b9a941c3dbba3f19094c77","name":"ros-humble-angles","requires":[],"size":22892,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28f15ea63488a04f95b05f74e2ac4d4b578d66684814cc732f52565148c68486"},"ros-humble-xacro-2.0.8-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540710852,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d9ca6a60336526d2647ebd20c07bdfd2","name":"ros-humble-xacro","requires":[],"size":48392,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfd7fb69cca782eae7c17ed65470b8675eba6b68c832c8257e15d166ce2d5cb7"},"ros-humble-xacro-2.0.8-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634902424,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"78516518f33bb1cd4cd56ccbbaf06c97","name":"ros-humble-xacro","requires":[],"size":78371,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d32b0dc091825a4a202e9fd8ac7b2222b99128632a71df3cf6092e0374579fa"},"ros-humble-ament-cmake-auto-1.3.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540740243,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5feeee1538221c47c1fcf9ded25b329e","name":"ros-humble-ament-cmake-auto","requires":[],"size":13329,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c633ee10b8afbcd622eb2ee74989eab6a27a39515a235015c42fa7c40ef7547"},"ros-humble-ament-cmake-auto-1.3.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634902997,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2c51666d77205362e8b56ae2e57acfcc","name":"ros-humble-ament-cmake-auto","requires":[],"size":14465,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ac39854f3aecbb369649753967e751e18d45c5a4f2841f8b9aeb564640b5f92"},"ros-humble-ros2-control-test-assets-2.18.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540705403,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"48af0b49f82a460f6dc3f30d0a9613e7","name":"ros-humble-ros2-control-test-assets","requires":[],"size":13793,"version":"2.18.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aef07bf97a2564c10463e9eca59448b212857eb5b191aca0fa96cde3e60bdfaf"},"ros-humble-ros2-control-test-assets-2.22.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634918313,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dfc9459fe6a5b680e05472bafb33b584","name":"ros-humble-ros2-control-test-assets","requires":[],"size":14756,"version":"2.22.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"371b0e0c56321f6ecd7e32fcf37dcb7db998bd07298c192a0e97cdb6fb897065"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540758007,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d1edcd5f7f590ccc580430cc852018d9","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":185394,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05ef9df6f96166c787e053484215ddfb565154e687da8322aed417d77000f444"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635039442,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d8f66843dee8112e581397f9bd373d4c","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":186270,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e11cc7e29f7686c1227eebb8cf836cfb37546342c302d9c28d2177309de78f38"},"ros-humble-ament-cmake-lint-cmake-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540707004,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6955c58214f09b757af29dc1bddafae8","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":10539,"version":"0.12.4","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"191586590cbc64bacd0c177bfab62e6e03aa7c93deff174f008e9e8f2b5f87e1"},"ros-humble-ament-cmake-lint-cmake-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634901054,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e34fa3a69c3a97c8e02a7ec86493264b","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":11515,"version":"0.12.5","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09d59d30bbb86f76dd9db6dc8b6002d148b708abc1b7c04f997e46bff4cd03b7"},"ros-humble-rosidl-cli-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540765031,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4f09751b33bb2258575f36715b94b170","name":"ros-humble-rosidl-cli","requires":[],"size":23863,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f3cbc8428df524e10a6f209163066a07256331a51c221a292dd5eba91a9fbee"},"ros-humble-rosidl-cli-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634893561,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9e49527eaf6ca2fe3bb2456cb8a56a62","name":"ros-humble-rosidl-cli","requires":[],"size":33518,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3d6c8d2c30104d4d509158c4e6b04f9fd001fde43de9199997d994bde7f63f0"},"ros-humble-uncrustify-vendor-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310hb58d347_2","timestamp":1670540765301,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"65b6bbb7ea202d9e10a7b03e210c0d6b","name":"ros-humble-uncrustify-vendor","requires":[],"size":9333,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2c1b7360038497703d5fc0dfc69ea5767c22eeea773f225028945095fe1091f"},"ros-humble-uncrustify-vendor-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310h010ba66_3","timestamp":1675634913006,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"23caf5c4acfd6cefc576a82c976f88d0","name":"ros-humble-uncrustify-vendor","requires":[],"size":10368,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcd13536fe96f4b748afd920cc4b73979ecc49dc38e9e9139e2c9fd4029b78b6"},"ros-humble-rpyutils-0.2.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540717673,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"565a2fcda6abfe9fb74dd1e4990040d7","name":"ros-humble-rpyutils","requires":[],"size":13616,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e489ad37426665a364624d890cf96f98369d8b180929e8bca3269fd87c552c5"},"ros-humble-rpyutils-0.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634895825,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8a2952d512f6c3353d449f392efb6ba7","name":"ros-humble-rpyutils","requires":[],"size":12405,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8879ba8b41ae831b4d340f19d29815fc637c447a3d7161f8201f145e83afd188"},"ros-humble-launch-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670540716273,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"582412bb15c746f042b8f07ba6c4b496","name":"ros-humble-launch","requires":[],"size":150257,"version":"1.0.3","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a79fd60c7c9dcc5c54a8c07da1d52fb941dc2e9ae9da9a8489a430cd42b73a0"},"ros-humble-launch-1.0.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675634892400,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4d11121d29b543afcc4daf52a128e723","name":"ros-humble-launch","requires":[],"size":265166,"version":"1.0.4","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98507940894b2bed73590ed5effbe3acc24e30230d3b2ac23bf90a2a1b037ba4"},"ros-humble-gazebo-dev-3.7.0-py310hf4366bc_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gazebo >=11.12.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf4366bc_3","timestamp":1677541404450,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ffeeb1669067b29ff2bd4faf9ca85da0","name":"ros-humble-gazebo-dev","requires":[],"size":14066,"version":"3.7.0","binstar":{"package_id":"639266cb54e9ace854c377fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"357c7b9102a5003090e79a64bd1585dbb444e6d7e1a04d844c8ceee263262552"},"ros-humble-sdl2-vendor-3.1.0-py310h9673384_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sdl2 >=2.26.1,<3.0a0"],"build":"py310h9673384_2","timestamp":1670540821993,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"38f38b52fb8f99a628d039a545062a4a","name":"ros-humble-sdl2-vendor","requires":[],"size":9837,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0229e7c567c91036dfedd1837b88e0f0b8dd72d6e1cbb6712d58c9b4007264f"},"ros-humble-sdl2-vendor-3.1.0-py310h7536504_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sdl2 >=2.26.2,<3.0a0"],"build":"py310h7536504_3","timestamp":1675635068647,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"10278c32da8729eab4a35d5f04b62e61","name":"ros-humble-sdl2-vendor","requires":[],"size":11385,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"684a1222b63988a3a996cd0be65a354d1deaf2d5af886e11db8d300fe7e38946"},"ros-humble-ament-cmake-copyright-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541208273,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"67640ba21c09bc331edfba0ac2de8be7","name":"ros-humble-ament-cmake-copyright","requires":[],"size":10546,"version":"0.12.4","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6aa1227b06a569d8efe226966b9d643ea5f95a18d7ba86702d0d6affda6ea7a2"},"ros-humble-ament-cmake-copyright-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635430804,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"771fb09aabab0789ec2963cb4fbfbc6b","name":"ros-humble-ament-cmake-copyright","requires":[],"size":11552,"version":"0.12.5","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d9864710a449b75bf7097fcbfc0084b18111bdd23731e92ef2a4b17ed981e0b"},"ros-humble-ament-uncrustify-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541257345,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dbe9ff35fe2310d610e7a084012d7553","name":"ros-humble-ament-uncrustify","requires":[],"size":34146,"version":"0.12.4","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64e7538019f33180e1c039a007174620be5b4c60f1dfa9192e7c248bddeefdd7"},"ros-humble-ament-uncrustify-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635430556,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"64c41d788c16614a17dd9e1e4763f6d4","name":"ros-humble-ament-uncrustify","requires":[],"size":43237,"version":"0.12.5","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19a78e25f5e16b9819f21d28333d672c348742613d0eca2deb3c6bc668f25724"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541213169,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9aaa046bc2f49e19c0025852b285e76d","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1081455,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e62141c4f719d65a205d28b1c8f2293edd0918b6266f50757e97aa79c8d659e"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635423970,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1377d31676174d769d909183e67bfe70","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1082221,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"195ca5d3f60370d18839b0040dcccf80450f74ee83cc8fe92544a0291df50c37"},"ros-humble-launch-yaml-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541210789,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0de1a0a9b547453831d4584a173a11e4","name":"ros-humble-launch-yaml","requires":[],"size":13244,"version":"1.0.3","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52a45d74c70b1e1bdb46d93630f6592b9c19fd410d9f6df2a08b6ad615724331"},"ros-humble-launch-yaml-1.0.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635428564,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6fec98e0f529686360367ab3c9a3c368","name":"ros-humble-launch-yaml","requires":[],"size":17289,"version":"1.0.4","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3406a7060440e55e0a5d51b21d4f35119e29afbbf251d7831cf6936031f96f03"},"ros-humble-launch-xml-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541252926,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f26c29acb8937d9e77323626a8363979","name":"ros-humble-launch-xml","requires":[],"size":12923,"version":"1.0.3","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd1ef6dc11f93ef1bdba914e7120e65f8c43387b4b7bc353f592ac2756ba1cae"},"ros-humble-launch-xml-1.0.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635427401,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ec905b6eb8b29cd335baaed1f933101a","name":"ros-humble-launch-xml","requires":[],"size":16660,"version":"1.0.4","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3eaa39a5bfdd83d762e081f1bee12e8a9086dfd2b73b3c49b0c0c3966bbb45a3"},"ros-humble-ament-cmake-cpplint-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541712480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b67c73a77059acfd9c7b9b93fa196aaa","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":10938,"version":"0.12.4","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"776a660dfad4a7dd16e7ad456ca937d84e53c5c74e9e9b1701b8bab4c9110cb5"},"ros-humble-ament-cmake-cpplint-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635890635,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c3c4070c4f4635cebb872119d813a214","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":11872,"version":"0.12.5","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f81172c2f4938c81e77aa541221757af99d6a56e6ac1eab46c0dbbfaac56f5b"},"ros-humble-ament-cmake-pep257-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541712946,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b6b5f68f8b6d6ef525a839cac69192f5","name":"ros-humble-ament-cmake-pep257","requires":[],"size":10550,"version":"0.12.4","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76526e284e0db80bf35b5189d95c9a82f0a3a701b82087ac41ce1b39153355da"},"ros-humble-ament-cmake-pep257-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635900396,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ae4eb0e0843fa7af1a4e8ce42af01dac","name":"ros-humble-ament-cmake-pep257","requires":[],"size":11540,"version":"0.12.5","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1556ba9d4981f0f63acec64304d3ea36c5037ce824ec7bcec43ff0629c9a5950"},"ros-humble-ament-cmake-uncrustify-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541733114,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"21c87d1cc87346ffd9b6f2372ff16c9f","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":10934,"version":"0.12.4","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feebcd587cccc099b02803b62fd4a9b601c7abd7cf49b80aa134f82c2cfb6cb1"},"ros-humble-ament-cmake-uncrustify-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635899708,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad552f81620d5dc857e08e593a3ab537","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":11976,"version":"0.12.5","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f39f5a613761ddd53294b8231d77f086abcf19c401922bdfe6eacfc8568a0922"},"ros-humble-ament-cmake-xmllint-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541694898,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b2848549bb4087a051a6a546886c614","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":10595,"version":"0.12.4","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7ef77bc4372d94f8c8d785b139d8e899b4906e35ff78c0ae20e09ec00ed7658"},"ros-humble-ament-cmake-xmllint-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635902125,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b2ec89900886c2c84bdec9d5a0f95168","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":11601,"version":"0.12.5","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32b6f98db6023e65a2d1c02295faf127aad934725007c745da2134b96cf38e86"},"ros-humble-ament-cmake-flake8-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541753704,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"524be431034fefee555793b8d09b1652","name":"ros-humble-ament-cmake-flake8","requires":[],"size":10757,"version":"0.12.4","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c1d9c4585527df720b82661cf42e899061cc5426d5d773c2b605a14e50480cd"},"ros-humble-ament-cmake-flake8-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635891256,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"36eff804bed3fdaa67281645307cb582","name":"ros-humble-ament-cmake-flake8","requires":[],"size":11795,"version":"0.12.5","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60b4ceaf9ac51e2043c3b47ce30392e3c3a016111e5e0e5f01013888dc2675a1"},"ros-humble-eigen3-cmake-module-0.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541744441,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"91fd0cf5ab90e68ebd5f44b7baeef8b3","name":"ros-humble-eigen3-cmake-module","requires":[],"size":10035,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90479a508c38a4692a839b6a4354dc3ab7afd21a6275e194e4d17f0e8a990b62"},"ros-humble-eigen3-cmake-module-0.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635891474,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fdbaf41e3451362f430dc156b6c85445","name":"ros-humble-eigen3-cmake-module","requires":[],"size":11035,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef58c7165261bf0349ba97c4f45d887227889d680628a8b14f2d4d4be26fefdf"},"ros-humble-ament-cmake-cppcheck-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541751386,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"10c6b90d5bb3bd55865259da72cc7cbf","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":11528,"version":"0.12.4","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfdd2c9c9286bfc8373da99bdd96b068dee8d280461e8a4c849d932958080286"},"ros-humble-ament-cmake-cppcheck-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635892356,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1e1879612517d53295e93cbadc7c11e5","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":12582,"version":"0.12.5","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8198ab9fd0cfbec06dbe4bba0171f1576486f14eb0ef3d9a8f3f67bfec322361"},"ros-humble-launch-testing-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pytest","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670541703018,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"855d238493f79fa06ec95920fe97bd54","name":"ros-humble-launch-testing","requires":[],"size":75045,"version":"1.0.3","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d96e5900110dc26021bdb56d8a5f8782b4a2ad84ac52e1290aacd0adc3444a2"},"ros-humble-launch-testing-1.0.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675635883504,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9a4ceaea31e816904ed44e6c7e05efde","name":"ros-humble-launch-testing","requires":[],"size":119418,"version":"1.0.4","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c3d44345bbe61f56e03b76fb267c304bc9aa3121ff5a466bf490d7f78244c2d"},"ros-humble-ament-lint-common-0.12.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542398906,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d75f66e86f8332faf81193f9ded9ffe8","name":"ros-humble-ament-lint-common","requires":[],"size":10348,"version":"0.12.4","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc7c73d76ab897ef1a5d9100036f5d846b5e5c3d651d8faf352d32465d256b5c"},"ros-humble-ament-lint-common-0.12.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636259430,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0b8800ee6fd65892c7f62156d3d672b6","name":"ros-humble-ament-lint-common","requires":[],"size":11473,"version":"0.12.5","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"780ff79122a758bcfc38b017a7bee3c7647c97ba25bd3a140d7ce829a09e4212"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-cmake2 >=2.16.0,<3.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542413039,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"924a17d14378ce3b82f3f502a21e4447","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":6472,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57acae6e272679ff678e5c2edf33509cf189be490f44d6ef69ba456aa9614001"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-cmake2 >=2.16.0,<3.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636284438,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"05900809992864b819ccb61a82d775f1","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":7685,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1c200da24a392d1f7aef9fd3c9f8756b138dd4f4409aef56692784434e258af"},"ros-humble-rviz-assimp-vendor-11.2.4-py310h0f340f5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h0f340f5_2","timestamp":1670542509193,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e4acaeb4fb613bcf182d842f0aab6912","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":10028,"version":"11.2.4","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e878045e36af6943774d71599fb3b8f2e1ed29d5da054b97b632bd28d3c248b8"},"ros-humble-rviz-assimp-vendor-11.2.5-py310h8ce6625_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h8ce6625_3","timestamp":1675636273238,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a91375235d0bc0e35a3e090299f14eca","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":11119,"version":"11.2.5","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa2e5ff1a06cfa2d01256c10f22291629a7b50cce4c7255c47f00216be4421ab"},"ros-humble-foonathan-memory-vendor-1.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542454575,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1724cad5728a5c14fed33ff94b19fbe9","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":7424,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c1163fe46f1946b3b1d5389e0a7fc7ba370f7025035cfd96dec413c0d4151d9"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636273507,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5a7a41c154c727562e8732b48f31a303","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":8674,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c4f6477344d21b28bca59e8d3c84bbd077e23815ee68d5ba57d7cb11a213cb8"},"ros-humble-rviz-ogre-vendor-11.2.4-py310hc23aaea_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp","freetype >=2.12.1,<3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ogre >=1.12.13,<1.13.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr"],"build":"py310hc23aaea_2","timestamp":1670542463432,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a3957e9d21080a621b2e8b1fd4b830b3","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":12341,"version":"11.2.4","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47e1edc7a4b03dfe828c2aff14f921e656ce182094fed00bc3468795fe06b6df"},"ros-humble-rviz-ogre-vendor-11.2.5-py310hfa1f237_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","freeimage >=3.18.0,<3.19.0a0","freetype >=2.12.1,<3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","pugixml >=1.11.4,<1.12.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr","zziplib >=0.13.69,<0.14.0a0"],"build":"py310hfa1f237_3","timestamp":1675636603528,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6ea9f344c2482f72bc40b7df3cdee8e2","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":5763216,"version":"11.2.5","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"593c31b770b5dc9e16b797a6838ee782ddcf00f31642e4dd95c30310f6916533"},"ros-humble-rttest-0.13.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542897735,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7932e39720333f6b9bd179949d5d5286","name":"ros-humble-rttest","requires":[],"size":40223,"version":"0.13.0","binstar":{"package_id":"63926acc46f81babcaf1f97a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f476743fa88ed8adfea63539ec3d396fb7e62c2fecdc5e1578f0707f07a0768"},"ros-humble-rttest-0.13.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637007314,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1ebdec888dc9db8cac3f20699569a5ec","name":"ros-humble-rttest","requires":[],"size":41593,"version":"0.13.0","binstar":{"package_id":"63926acc46f81babcaf1f97a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dffcdaf2cdb7a4fd7baedc6c14377f127212c1966b02e60b5561f916aff5a3c3"},"ros-humble-tango-icons-vendor-0.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542883377,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"926b644b2d8becb85da3ad3cc3fa5eb8","name":"ros-humble-tango-icons-vendor","requires":[],"size":9336,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21e9672941f959ad685324f521600d6d44834c6ee21ef1cb09175df82e1dcf7f"},"ros-humble-tango-icons-vendor-0.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636988191,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6d2967b308d6b33729393f1154292547","name":"ros-humble-tango-icons-vendor","requires":[],"size":10557,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b94badf1979a10c29d65ff391a004138dba1dfc22bfab87c3e70439e62de4028"},"ros-humble-ignition-math6-vendor-0.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542897337,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c161823ac97718c482589696ea86a5ba","name":"ros-humble-ignition-math6-vendor","requires":[],"size":6514,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d0a86b64a7c22635e75c683a7a513c6349ab7b2d5f75f80df3a7f7a9a2e8594"},"ros-humble-ignition-math6-vendor-0.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637007099,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3ea3811814735dbde7c4e1aaa47e689b","name":"ros-humble-ignition-math6-vendor","requires":[],"size":7775,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c95b247cfea6d0b1b72d83a23e27ffa9fa0d310c3bbc0344782a359d3ec2da72"},"ros-humble-tlsf-0.7.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542942515,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8ec7b524415a9d604292322c88f39257","name":"ros-humble-tlsf","requires":[],"size":16284,"version":"0.7.0","binstar":{"package_id":"63926ae2a2b7121008ff577c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"877d762f4cc1e913e87693534e39677dd800d7730605fd48b3f58d63d12c2c48"},"ros-humble-tlsf-0.7.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636991581,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"89a4349770b4060bde12bd052cada950","name":"ros-humble-tlsf","requires":[],"size":17757,"version":"0.7.0","binstar":{"package_id":"63926ae2a2b7121008ff577c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7bfe61fb60f94aed0f1cbece35447b3ef6ecd6d06674e05146292e5251a68cdf"},"ros-humble-moveit-common-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542993678,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d2afa8b3a7fe84ba05dab71f14e21a3a","name":"ros-humble-moveit-common","requires":[],"size":11079,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"799c7cdff5e22b267252639feaa531e3bf62d99e93cc0f30361c3000e7dd0790"},"ros-humble-moveit-common-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636999245,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"effe3bf9d220576880868bd948c4228d","name":"ros-humble-moveit-common","requires":[],"size":12517,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a042297fb78a95c5efba824aa5cfd2e443189a975d8fc2b41dd120e06a755bc5"},"ros-humble-keyboard-handler-0.0.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542932203,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ecf63392a4ed1e9ce7f71a11876f7565","name":"ros-humble-keyboard-handler","requires":[],"size":41570,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6e486ea752943635d192048f4533adcfb143c4d955f2874799c3cdd83c6cdfd"},"ros-humble-keyboard-handler-0.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636999660,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"782706bc74e979cad70a732f6572e26d","name":"ros-humble-keyboard-handler","requires":[],"size":42945,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db1d73095fbdb5b094d4d919cba15c6f41d98e9091f9da52ff7435f85ae747ca"},"ros-humble-python-cmake-module-0.10.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542886838,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"017482afbaa032a8b1a398dda4004667","name":"ros-humble-python-cmake-module","requires":[],"size":11444,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02bf5436494659de4504a57afb4da7cfd34664cbaf153ef351e36cb001787cd4"},"ros-humble-python-cmake-module-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636987995,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"85ccb48d443b1b0b90e20841bc3cd093","name":"ros-humble-python-cmake-module","requires":[],"size":12650,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17fb3211d8a93ca71f2c8d3ba15dd22b742bedb15d69d5fd66d07222484cdf10"},"ros-humble-performance-test-fixture-0.0.9-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542937623,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ffa7d9873af1adbb530047086831619c","name":"ros-humble-performance-test-fixture","requires":[],"size":24746,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d47d931d08b9c0208050c963e7bb1d10b6cafae07d2b1f35a12e6e2239b87a5"},"ros-humble-performance-test-fixture-0.0.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636994513,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9ec9bed0ccc67271afea4aa54ff36842","name":"ros-humble-performance-test-fixture","requires":[],"size":26062,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0a7758d5d1b2fd35ad4ff0939c420d77abc79eb1dd3cb5b424c8c391965de1a"},"ros-humble-rosidl-adapter-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542890230,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7904b38093ca26863a2f1650ba3c465a","name":"ros-humble-rosidl-adapter","requires":[],"size":36278,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee60d2dfdcab31bc885f97744614fe99b0d57da83227132885b72a98f36b9aa8"},"ros-humble-rosidl-adapter-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636989950,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"202928deea9f64966dd44d3e21528c46","name":"ros-humble-rosidl-adapter","requires":[],"size":58341,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"710f9533932aeeb0a5c48313f4d7b14994982813d5bc54acfc0dbf0b74391c32"},"ros-humble-mimick-vendor-0.2.8-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542913467,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9c1c19461cfb7a9c5746f9f85e689d45","name":"ros-humble-mimick-vendor","requires":[],"size":38901,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"abf73b05eb36d07f95a93277c2ab8300167a3441fee98427b10014a760924d86"},"ros-humble-mimick-vendor-0.2.8-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637008976,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"48bd1a0daf93050a8751ad1035481d87","name":"ros-humble-mimick-vendor","requires":[],"size":40311,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2850cc44495fb47f3b30e7a9eef370a39bca6c3d576478c0307cd0cd87769c5d"},"ros-humble-ament-cmake-ros-0.10.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542955225,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"770c9887a193005e557e58bcaf7cceb7","name":"ros-humble-ament-cmake-ros","requires":[],"size":12684,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cda44a1628044ac5f7f19b1ab2bdd06a56ce67dd36535788a8ce705095fd703"},"ros-humble-ament-cmake-ros-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636987603,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"51b02f5e833721a22e174fa4770d12fa","name":"ros-humble-ament-cmake-ros","requires":[],"size":14484,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa2b3e14d185f371e4d7c5ec733d9cad5ea8567a3bd5320a7eec0fb91134227c"},"ros-humble-spdlog-vendor-1.3.0-py310h87cee46_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h87cee46_2","timestamp":1670542939144,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a81d2fdce479feb2310688466a690b4","name":"ros-humble-spdlog-vendor","requires":[],"size":9268,"version":"1.3.0","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"966803c4a792192b3b5698d84f9e70cfcfc401f26a95d733bd34f81e3f7801cd"},"ros-humble-spdlog-vendor-1.3.1-py310h76d9d10_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h76d9d10_3","timestamp":1675636985508,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9bf832072f573dd8f0cad513b13e1102","name":"ros-humble-spdlog-vendor","requires":[],"size":10544,"version":"1.3.1","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33e63759870d92b333b620a68c3d61338ff3497d59f53aa89f6b598a1856599f"},"ros-humble-python-qt-binding-1.1.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674555674010,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4271ef6b762418c7a4aec3a43c81f2f0","name":"ros-humble-python-qt-binding","requires":[],"size":34131,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc8d607dd0419d084130a6ba93ba4692a2c8d302f3e59364c80ccbe4d166cfd9"},"ros-humble-python-qt-binding-1.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637040212,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0af838c3937e9eff908c60df4a945418","name":"ros-humble-python-qt-binding","requires":[],"size":34118,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18c9673a17746724cb46abb20fe3398ed81e94f38ec0cc1c8799d59936192356"},"ros-humble-smclib-3.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542955004,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9926d507c988aff99585f0fcc77a162e","name":"ros-humble-smclib","requires":[],"size":19066,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eac11d45e861131c2f04d4f54f63118d9661db576b72cb8638ccabaa301cbb60"},"ros-humble-smclib-3.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636990774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"db2eb1d7b10883cd5f52a009ed97d992","name":"ros-humble-smclib","requires":[],"size":22409,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33ca1a7355004a2dbeff57363421752c257c3b2256d363295850373ca88e2afd"},"ros-humble-orocos-kdl-vendor-0.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542913906,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"410fe23d6b2c2968c3e642c8469d108c","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":10065,"version":"0.2.4","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9dde3154c0c6cf659117aefee4ae2acbab8837314fd5f15176f5daaf7736fee2"},"ros-humble-orocos-kdl-vendor-0.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637006417,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d350cce12ff720537a1694704175beb4","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":11320,"version":"0.2.5","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"643c707156c420e8f5d6c6a13c0135a7f925c3afe6e606f16215cf850947815d"},"ros-humble-ament-index-cpp-1.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542899374,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c13efc4d18095af0bd21a16f9900066b","name":"ros-humble-ament-index-cpp","requires":[],"size":29277,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e0ff0f789aa4cec8cfaae1cc680f24006bd706779c723ee3269e311521bc7b0"},"ros-humble-ament-index-cpp-1.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636993530,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7af13614b7b8b5d10a2374e5b548da8b","name":"ros-humble-ament-index-cpp","requires":[],"size":30613,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf02c13f352701463cb2fadff260e424abf8aec8205120c87d8383818a47f33c"},"ros-humble-fastrtps-cmake-module-2.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542878180,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a4b397a8f91d516359b9ea30d803e776","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":10395,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86ad12276bb537238a118513684e43cdb5b6469f8194aaf05242d877326cab63"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636984169,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5fa69937f14656ed50e4c60f5869f305","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":11630,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87506269f9433f2c412c2354b739fcfc43903602f6c55f8e85262630fc4bfbfe"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542890208,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a0cd2f3a19c1903463b455c839c8e5e3","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":14449,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b92e2ab0c81a72d2b91f8d24ac720fcf24b85baaf85a99a89858ce363baabb5"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636984266,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9cc3ad23593c3f6a6d3b01e062c8a952","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":15748,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"203949f46c665d6d4a49bc381b1b014833e5052edd03654fea067993d92eaa6c"},"ros-humble-rmw-implementation-cmake-6.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542928539,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fb61833d901ee8cb83fcfbbf63e09d64","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":12303,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a236ee8991c79bd13ffe62f2544be61da2f3b6f11bf854491450532b128fb61"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636986262,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5bd1a6708b0bba454a9c70b9ba2ddf2c","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":13629,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80d3b21f02413bc45c782b5166ed5cfbb9465005b6dbab2930f463edfd5be1b3"},"ros-humble-fastrtps-2.6.3-py310he829ff3_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310he829ff3_2","timestamp":1670543486195,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd7dff66e589b6b0ae893d4183a4efac","name":"ros-humble-fastrtps","requires":[],"size":3428029,"version":"2.6.3","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8981c658a002612fbc93d49fba1f689d81c9468e94b188f54d4610640aec99ee"},"ros-humble-fastrtps-2.6.4-py310hcd2dc23_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310hcd2dc23_3","timestamp":1675859189622,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"45dcb6c9447a41984f5ec9bca88fe03f","name":"ros-humble-fastrtps","requires":[],"size":3431996,"version":"2.6.4","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a96a8f81449463073bf55559a188efed601a0742ae71df94be880deb781cf8b"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670542928939,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b101cee4c735b417d531a96e6a53d2c","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":11685,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77d91892dbaccfc2abe9ba8c95cae28eddeca9bb47eb24fb7b59af7fb821a787"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675636988433,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"77204b6b3fea135657083b7d21b49bfe","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":12946,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2699096356c04de147b6491216ace340325c15ea408ed23740bd979c4c6eccf"},"ros-humble-launch-testing-ament-cmake-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543888315,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"baf0f17709f31573418aa981875d3206","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":11804,"version":"1.0.3","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa2c86a69933a08abf8ffe08b660ca33b855c29afb3535b537578934d8d2f20d"},"ros-humble-launch-testing-ament-cmake-1.0.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637562103,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"36862cae45367453e53297e37cad8f55","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":13057,"version":"1.0.4","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68be6eab1736a8db23ee2de38abcefd2fa8e1dcdeacf0a43f94c062910a72aa3"},"ros-humble-rosidl-parser-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543941472,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"892870318a32db4ad1a3622abe83094e","name":"ros-humble-rosidl-parser","requires":[],"size":34801,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d585ce173956b9c41281833c465ee35fbc11c552ac35e5dc4159bad395103c7"},"ros-humble-rosidl-parser-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637567573,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0daa7d75fb4333416bf2dd76db5b5ed5","name":"ros-humble-rosidl-parser","requires":[],"size":54151,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33929c1c0b95d85caad4b3a9e9544c78294c47202a023e5efb68c61663985ebd"},"ros-humble-urdf-parser-plugin-2.6.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543893153,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0c5f1d640299fc8e5c8c14363e4d9414","name":"ros-humble-urdf-parser-plugin","requires":[],"size":12871,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"065f49f7a617ce208b55841fc418b2d477abf005a1592537b1aff8b5762e8f13"},"ros-humble-urdf-parser-plugin-2.6.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637566389,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6a5b621257a7c3c26a21c9f83a8ccf08","name":"ros-humble-urdf-parser-plugin","requires":[],"size":14348,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c149274694ce05b55103f449d923511f25692df9766e83bdcdff94fe1c444e9f"},"ros-humble-console-bridge-vendor-1.4.0-py310h01ff0be_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h01ff0be_2","timestamp":1670543949235,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"66499f571762b06f83047191d74226f1","name":"ros-humble-console-bridge-vendor","requires":[],"size":9405,"version":"1.4.0","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b35bed171f082942b383e525368a3ec5e056c3c2561db55cddc021c346805a5"},"ros-humble-console-bridge-vendor-1.4.1-py310hdea95f0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hdea95f0_3","timestamp":1675637564671,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"48a4c45fb92981a23bb7ee0cba7fc5b5","name":"ros-humble-console-bridge-vendor","requires":[],"size":10667,"version":"1.4.1","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7d68b7f1f62f22522ca50e005a6b381bb6987f02472922b3ae4b81e48270b1f"},"ros-humble-tracetools-4.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543910081,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"006fbbae895a0ba2f2d0facfac3fdc62","name":"ros-humble-tracetools","requires":[],"size":23408,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fee0e18f752ad00ca34e76c96adafe520184d226f61ea57150ac5245bded25eb"},"ros-humble-tracetools-4.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637570480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"378ebe6eb3ac3bebe5ff307ffd79e626","name":"ros-humble-tracetools","requires":[],"size":24869,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a661f5f4a8b8dcf3761aec718a49916f431e64f06edfe1f4fcc58ec7cad4ccf1"},"ros-humble-qt-gui-py-common-2.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543920503,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"88433a69152ca70df48065974e5428f9","name":"ros-humble-qt-gui-py-common","requires":[],"size":20295,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d4f49fd3244bac1003cf8ee1fb3c6744f2db7e29b478c11a1645de92afcd301"},"ros-humble-qt-gui-py-common-2.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637579580,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b054467a08839e18cb16cb7142178b14","name":"ros-humble-qt-gui-py-common","requires":[],"size":29239,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7af71f415842601a94fdbc918799e1ebe1b5d53c87b3320e6c10155684f7a903"},"ros-humble-tracetools-image-pipeline-3.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543988952,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49f6aaa8142f17f8c0c63fa570f273a9","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":19284,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0766fb85cd0d0dfcace9ccd86160ab6bbbb9c99c35abfdb6a2d20799b588c2e"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637576217,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b486471604755ca33a8d5651bd4f2455","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":20726,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"570f4dd7d08c4b6324a3ac0e055e4f47d7aa96201798c5d9081b7457fdb999fa"},"ros-humble-qt-gui-2.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543935495,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7f941fe8169fb29391654648001e6387","name":"ros-humble-qt-gui","requires":[],"size":105075,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba416742feae8bc9da79961358aacbe68ab778b192b7f936d2c6fc50a649075c"},"ros-humble-qt-gui-2.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637610908,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ba58d3123e7ab6052dec7a99a5624e64","name":"ros-humble-qt-gui","requires":[],"size":177822,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d8a49d9352d89513aa4d7f563fb82ec81e17a9f34ebd34cabf3aa352cb58cfe"},"ros-humble-resource-retriever-3.1.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543947586,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d314e4b2ba21a6eb385b2c0227e30fdf","name":"ros-humble-resource-retriever","requires":[],"size":26900,"version":"3.1.0","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ff6573b3843712a621944c097682e236d73feacbb37fed95fe4da6b1cc422cb"},"ros-humble-resource-retriever-3.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637576940,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9f6005d5a9cd055318d006cd2d0c2ead","name":"ros-humble-resource-retriever","requires":[],"size":29444,"version":"3.1.1","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"111977b2b535da88978914d58d061ed8794a6866735ef3623d1f6f52b859af07"},"ros-humble-qt-dotgraph-2.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pydot","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670543992822,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5ccf44a5f0e79e520530da6445e03ee1","name":"ros-humble-qt-dotgraph","requires":[],"size":29328,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"710c8183b187c34b4f4afb2ccc29ae1321f238e1ef52b06b84054c696a0af297"},"ros-humble-qt-dotgraph-2.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pydot","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637602612,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7ed254357e1cdc3139ec4ca3ede447d4","name":"ros-humble-qt-dotgraph","requires":[],"size":47901,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbd57ba0b5ed0af409bc05d703d590caea7bf7a39ef7206f5ae2ad6134015ae3"},"ros-humble-urdfdom-3.0.2-py310h01ff0be_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310h01ff0be_2","timestamp":1670544463844,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4c46b5d51d98a220462765997680cc3e","name":"ros-humble-urdfdom","requires":[],"size":137354,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c47caa06444dcbdd16472d83c09b682ed170ddf9a2958403adb6d1d261f0118c"},"ros-humble-urdfdom-3.0.2-py310hdea95f0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310hdea95f0_3","timestamp":1675637995857,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d934667a0550bd00613d190a150695f7","name":"ros-humble-urdfdom","requires":[],"size":138491,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"499b252acb4332248d7d3dc8be24b1567a6aa7fe00f28be3314b2c824cd460fc"},"ros-humble-rcutils-5.1.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670544414137,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9679c25e23c1dc867874df4b32bfc882","name":"ros-humble-rcutils","requires":[],"size":95822,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a66b9c7706d0b6422283c160b8d4646c506afa866fbdb7361a8bfe4f17b44cf0"},"ros-humble-rcutils-5.1.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637986422,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7e36c000eb89f81d1fa31cd2e9c81cad","name":"ros-humble-rcutils","requires":[],"size":100240,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b834d27a0f864ecec0f8087ec00ea0850623e628ddb86796ab18a832230e9c1e"},"ros-humble-rviz-rendering-11.2.4-py310h06598b5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h06598b5_2","timestamp":1670544689758,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54bfd818a89ea159a2cfbd6f4dbd7d1a","name":"ros-humble-rviz-rendering","requires":[],"size":952188,"version":"11.2.4","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23a88dac2c21eeccc033bced5c6b6a1488556387af6e37d7408b6a3e6e388154"},"ros-humble-rviz-rendering-11.2.5-py310hff499e4_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310hff499e4_3","timestamp":1675638087856,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d43ef97264089ef93b5164a7060290f","name":"ros-humble-rviz-rendering","requires":[],"size":976630,"version":"11.2.5","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6aa0f641361e211cd26b0749809cc8059089f4dc41ec4981fd418a928b42286"},"ros-humble-rosidl-cmake-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670544458988,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d31b2f53f6656df0ccf9c4689a497ac5","name":"ros-humble-rosidl-cmake","requires":[],"size":21821,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d22efe8935423f7d88f4c7c5e142ea4162697668b19d54d1b6910e390963b16"},"ros-humble-rosidl-cmake-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675637977840,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"24a7ab9d02e9446b3afac26911d61045","name":"ros-humble-rosidl-cmake","requires":[],"size":27218,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65f4165927ada940ca4b8f3ad6b78d6053b184cdca9874bfdb249f844998d3ee"},"ros-humble-rosidl-runtime-c-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545130292,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"52d3f23ef1c5693bdaf8e070eadb26c1","name":"ros-humble-rosidl-runtime-c","requires":[],"size":33782,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c739dbcaaaca0cf696dd7d32d5b6aa4b17b6f2c8998bced92b6d6119721db4d"},"ros-humble-rosidl-runtime-c-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638483885,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dcd171c023f0bf8a7948ea6fd0367c33","name":"ros-humble-rosidl-runtime-c","requires":[],"size":35296,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"154d83ed550235683582e502f99b4b327fceea7fe03815ff409565ec82f99512"},"ros-humble-rcpputils-2.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545178563,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"531b29ed5d68921dee1edd59809bfddd","name":"ros-humble-rcpputils","requires":[],"size":50564,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30a62a326ea7412b88e097086b784073f55003b342a4e3921b659e10901770d8"},"ros-humble-rcpputils-2.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638483491,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c23557718f7e29ce7de44ad3ad262975","name":"ros-humble-rcpputils","requires":[],"size":52057,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dab01055c80858b439c4b07db2f8ebf3305ecd4004d8b00285f33a7c311d1d69"},"ros-humble-rviz-rendering-tests-11.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545179897,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8bdf554d79ce6203ce464ebf3f7953aa","name":"ros-humble-rviz-rendering-tests","requires":[],"size":9534,"version":"11.2.4","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a413ce81388211c2f2c7364391c57267da98abdd26834ba38f5054529982146"},"ros-humble-rviz-rendering-tests-11.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638542321,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"145412b7e2ba2f35d8a35ddb797988e0","name":"ros-humble-rviz-rendering-tests","requires":[],"size":12251,"version":"11.2.5","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79459cf47ce34b9883148e0f9faa74b671c05c15f84a0f14f6a546d035d92019"},"ros-humble-class-loader-2.2.0-py310h01ff0be_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h01ff0be_2","timestamp":1670545607850,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"be796a11d05624f4336d58a962620e96","name":"ros-humble-class-loader","requires":[],"size":57667,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16b12c3c8e68491ffd57e6266f8f7b6cee943aed3267058cd48409e89a170e1c"},"ros-humble-class-loader-2.2.0-py310hdea95f0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hdea95f0_3","timestamp":1675638934273,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9b53b59992229df4c79ebb003827e3ce","name":"ros-humble-class-loader","requires":[],"size":59098,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e056573e8105d97efd401c662f0b4b2c39a34b8764bd7b770abfef6ef8c53414"},"ros-humble-rcl-logging-interface-2.3.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545666935,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"384ea22776dd2b8a070a4165ae5ea7a4","name":"ros-humble-rcl-logging-interface","requires":[],"size":17233,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a96e1cd1ab5ee738d44f314ee688d8998fa9a98daef13a168abbc08cab995220"},"ros-humble-rcl-logging-interface-2.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638925086,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"56713564c384ce3f0bb5af3c0e1077b8","name":"ros-humble-rcl-logging-interface","requires":[],"size":18663,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a73e44791a0afce8854f924e429288a0983fc732411c5dadc9d2c6b48d27ccdf"},"ros-humble-libyaml-vendor-1.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310hb58d347_2","timestamp":1670545620905,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5de80023cc14b35f48c394bf4075a6f1","name":"ros-humble-libyaml-vendor","requires":[],"size":22637,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ecf2ae6de1df663d30a2d27c09f357d752558aab40d212b0bc79ea563d7ecb9"},"ros-humble-libyaml-vendor-1.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h010ba66_3","timestamp":1675638940812,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6be9bc2ac31d7626dc486f7f12d95567","name":"ros-humble-libyaml-vendor","requires":[],"size":13545,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84de6bce78fdedd40d8726b5c22dbcfa4dc5b0c188a4f3a6d04173c409a1abfd"},"ros-humble-rmw-6.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545597889,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d8848b24724e166e9f579d94d202c5e2","name":"ros-humble-rmw","requires":[],"size":71432,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf08660aea7d9bcd46f0f5b2a5787d7328cb229c297c55ce4ca98f66ca4461c9"},"ros-humble-rmw-6.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638928225,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8ecc51c8acf80e3403db6ca06d089e79","name":"ros-humble-rmw","requires":[],"size":72894,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3bc2f5f0357e8643b2a55b78a4409d396e7d78e84a0398e1fc5405f3a3919b8"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545593803,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"93d7e0418b2f2fd0ce1e06eca613bb9a","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":18557,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50cc4e8ed40cdf0c475d3ce840fa53bd11989ad387b0f0667dfbb66926e5176d"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638920705,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ea6ae8eb88c3adcba9fef246dfdf693b","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":20021,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e08779961a67acc77e098efea20626f64ecf1b7477568f77cb12c2927da7e8e"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545648747,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d5986993fc6f57b3bdfb32fb6a41b60","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":27555,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"891332ce82a35fe83f13db56deb29c91dffb8807fd2b7f6ca716303360fd0bc9"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638922855,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"239b23758a965d4fd5be98b1c7da94d2","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":30592,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b8cc0807f9e9e691ff673180392ca60be645864cd78af14c42af60dd5fcfa9c"},"ros-humble-rosidl-generator-c-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670545641626,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"301704cba9dc9114ac671e05f7d7c52a","name":"ros-humble-rosidl-generator-c","requires":[],"size":26971,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e55c0a225e2497271257bfe43da19a954b943a381fea8a87425ef35e48db8de"},"ros-humble-rosidl-generator-c-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675638927664,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7cb2ec327881a7747ae41e6347fafe63","name":"ros-humble-rosidl-generator-c","requires":[],"size":32611,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e596fa9e44aa958380b34a93df714b2e0a47e34cae3f021736f1f5cf34c602b6"},"ros-humble-rcl-logging-spdlog-2.3.1-py310h87cee46_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h87cee46_2","timestamp":1670546132258,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2ac7d441381a27b672002e9e535585b1","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":25428,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f575fa233ac6762ea0521615a97e3f0fe13879d69e95aca004028493726c2077"},"ros-humble-rcl-logging-spdlog-2.3.1-py310h76d9d10_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h76d9d10_3","timestamp":1675639321160,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f544dd3a7b8e1cf8fe1514d3687f6d02","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":26925,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18f2eac659d242a34f564307663d48146818972afee5395a55c993451169c38f"},"ros-humble-rosidl-generator-cpp-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670546067636,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"01d356a2815ce8c753c1d43cff2321ce","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":28850,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d45ff3b40edf80ebb5eef75afa11cd54e616bbac896eaede07c535b35fe7bc57"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675639311267,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03be1165f00e36e1b742e1b56a7d65d2","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":35872,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"942c2f22e96f493d2b3ad99c20be9bce316a6bbc48de138f10193a3aaa8d919c"},"ros-humble-pluginlib-5.1.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670546054741,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1db46514752fdaa3bfcdf828389058cd","name":"ros-humble-pluginlib","requires":[],"size":27080,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33d012666b2dacebf9041114b67b73acfb6b4045212c6393f25eb3d707b966d3"},"ros-humble-pluginlib-5.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675639298324,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"182395eb4c96300d30b36440b6dc460b","name":"ros-humble-pluginlib","requires":[],"size":28310,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98a05e7c96461bcddb8343dbe3966838d2fc118f407a169c5ab92121dc73a641"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310hb58d347_2","timestamp":1670546080797,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"077b9d80be7bfaeb07f79c178846b799","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":33634,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdac3dfb4aa84a13d34d47a367c73a5eb119b074679c9453c76a7553a901e883"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h010ba66_3","timestamp":1675639315965,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"15889f5ff49aa4cdca898c3815605d7a","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":35169,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28194be82c38cd466543705e288318487ab01b8be75cc89f8cfebc6fcf3b7641"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670546114837,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f4abbb51cc8a08a49f9e3c1f86f0a510","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":27804,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8aaf9b789ab7d8e315dfd5b05fb1f32368e4953f9ae9fde5eeaec6146ad51ac"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675639306644,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac7de9af6fbde0045a9850d1a7069ee1","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":30608,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83233e5062b05c26c8d1319aec5669767d87537cfb3e0f5b8f3d87b3e7c28c9b"},"ros-humble-urdf-2.6.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670546615731,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c955f4d365af0bab424a834a65d34574","name":"ros-humble-urdf","requires":[],"size":129656,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bae6d435ff2fa47c0f7259b22412ef6220f0e7c467c5780efac2a2db48cede92"},"ros-humble-urdf-2.6.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675639707050,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"efbf08443fc6f0ecf3eec7eba23bb781","name":"ros-humble-urdf","requires":[],"size":131268,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c72b5376e4bcf99fe62eca9614cbf8eed7697f8e88b4e94e76388304c684cc3"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670546546262,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ef73d3b0c0dbd7341ca5fde3c3c205c7","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":30665,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30a4af658ca14cf0120727cd8db2759f67d3e600819e122a4d2f6d168249f599"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675639693027,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"44d506d1a0cb0333bcae015a6133e45d","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":33732,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dcb84cc4ef39465d806968365997abcf6424a791bf80a1b30e4b6ddb75dd1ec"},"ros-humble-qt-gui-cpp-2.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674556933155,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"250cdc687173473913e91f7cdff09cb5","name":"ros-humble-qt-gui-cpp","requires":[],"size":1210939,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bff8f9fa67a0d6d1e232e786373642a65e6d1c2b991c3fd3d9b508786844bd3"},"ros-humble-qt-gui-cpp-2.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675640026286,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fbe0730a4dd95d89447c5675220633f8","name":"ros-humble-qt-gui-cpp","requires":[],"size":1217140,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e8c8ef41f293200ae2fb69178cb5672ba6fd4b9e0bd99f6561437e671b5f217"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670547353774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b6b68f3f9121dd0a5a07089a22984053","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":28676,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d9481d75e92d8d1a921efa3ddffccb490615543b7cadcc0b03e6c775547f36c"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675640432613,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd824e51b9ac771326e9b740a4075830","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":31741,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b66955294e92720e809399236802afbaab5f63644dbbbb3631bac3acd395e0e4"},"ros-humble-kdl-parser-2.6.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670547409841,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d56b07ef48e23c2168640d2beaee0e18","name":"ros-humble-kdl-parser","requires":[],"size":27882,"version":"2.6.3","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09acd9d37accd5b08073abc2924442425261314715b5a80b14122cef25a2d7bc"},"ros-humble-kdl-parser-2.6.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675640437107,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"279b949b4ddacc2379f2bd1a37a4984d","name":"ros-humble-kdl-parser","requires":[],"size":30598,"version":"2.6.4","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53986dd2dcb04029b81d82171ed185f7f3552e0b494bfb13acda0f196aaea67d"},"ros-humble-rosidl-generator-py-0.14.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670548375712,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"40930cc9ef0fe05f82a5c77ede2bcc51","name":"ros-humble-rosidl-generator-py","requires":[],"size":36558,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3cd22b1f25a72b7259c89b763d8324d180359a7601c7464466ccaf8295fac9f"},"ros-humble-rosidl-generator-py-0.14.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675641283050,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ee1688176b7e6feaaa9a6170315f668f","name":"ros-humble-rosidl-generator-py","requires":[],"size":45024,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19c10a956891d526999bab027c2ae6f4f64016ed7dc9a40d262476aa356134e7"},"ros-humble-rosidl-typesupport-c-2.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670547874465,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"baeef631709f37887daadf72e102df8c","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":29203,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"355fa1d54fb2e8896d153d1e4fdaed0b544b8225720240f593ddcda6d488a171"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675640888878,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b0c3d2f24da0a0fefddf0e076a9a5a42","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":32448,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba18bbce579e6d1f5c7ce8b102b1bb749219f5dc973cb4eaa975f697fc7e4248"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670548326303,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f45ee127b808f90190e3e1516e6b1b56","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":28410,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5037b1069825cabf6e136a985a134e6eedd9bab26fe5227628cf7fb0fbf78c9"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675641298932,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c0b3850ca63ee074f648863be8e06d9c","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":31587,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81ff3425223d3f1f87ac64206ddaa96d58b76b66e68d819b7a40489b873b5d8f"},"ros-humble-rosidl-default-runtime-1.2.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670548817384,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"021989e382dbb574bf3124d934978260","name":"ros-humble-rosidl-default-runtime","requires":[],"size":9782,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dbc868b37bf1c33f63c5b18aa3ad74b0a70b978a3ba1a1fe8aef7b7d3a46d0d"},"ros-humble-rosidl-default-runtime-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675641682674,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"20c28bf02dc0499cb9ef6b4b62583896","name":"ros-humble-rosidl-default-runtime","requires":[],"size":11405,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee5db405bdf5a6e7eb8fc9c7d116437578e79d664b4038dfd1fa7ea4dcb1e254"},"ros-humble-rosidl-default-generators-1.2.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670548856904,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cd068300ca4a6837534648ee52fb6a3d","name":"ros-humble-rosidl-default-generators","requires":[],"size":10681,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c9c47f1987e222765cb1aabec28a459a2b801a1ea85d0ee2a7025d052cbd747"},"ros-humble-rosidl-default-generators-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675641686444,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2d47c85f684546b32aa504f465129299","name":"ros-humble-rosidl-default-generators","requires":[],"size":12316,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c368b4c6eec0ae7e27ad90053997c3a5eeb3b740fbb6eca6001b12046144d02"},"ros-humble-rmw-dds-common-1.6.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549324557,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"807dff6da8a83340052769d7f091d80b","name":"ros-humble-rmw-dds-common","requires":[],"size":129468,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1bc5fa04a2247d4610dda70d684856a3768f47079f7ebfc60cd9312b43051a9c"},"ros-humble-rmw-dds-common-1.6.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642094992,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"33bbc5c254e14336b9d9839fa901ad1d","name":"ros-humble-rmw-dds-common","requires":[],"size":139097,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec9f75a0de9550e39c443f8fdc98a5ee718445e506349f5ea2029f991587d266"},"ros-humble-lifecycle-msgs-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549418525,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"301a3ad16dd0b0c6989d94d2bb38c0fc","name":"ros-humble-lifecycle-msgs","requires":[],"size":153091,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86d111d1619b5a6aeb00d40824f1b0e3a44eb5c94505876c63a8a0dd7589537e"},"ros-humble-lifecycle-msgs-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642100532,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"47f3907928e4342f052277c48680cb17","name":"ros-humble-lifecycle-msgs","requires":[],"size":179702,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45cce13324697f8fb36d24a7083c954f6dd7786bcb798563f0b63e6ab889257f"},"ros-humble-unique-identifier-msgs-2.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549314873,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8e41eb57065c3349fadebc4128d50db1","name":"ros-humble-unique-identifier-msgs","requires":[],"size":51296,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18bbcf549a11233a2285eb40c4e78edff67a873eb0ef1f890720a2623143f711"},"ros-humble-unique-identifier-msgs-2.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642080651,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"53f592585de0cae4cf5805a11a6b8827","name":"ros-humble-unique-identifier-msgs","requires":[],"size":57138,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5ae5fbda71bc90743c044011916c479387d6a0f1369d23d86ce1a44557576d0"},"ros-humble-builtin-interfaces-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549380953,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0307f2f34c9775c9af00af7277053960","name":"ros-humble-builtin-interfaces","requires":[],"size":57869,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5f49bf7b1c2d819b9b658b1bd9eacc7fd3e2df4beaa74f50eaec8a82a00106b"},"ros-humble-builtin-interfaces-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642087867,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e31ee8ec38ae0e38ad5e0377853c056","name":"ros-humble-builtin-interfaces","requires":[],"size":63850,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"049cd1df602fef7bfd3f0683e3fa9f0e6c47c3774bb924422ae678fc30ae3ec6"},"ros-humble-std-srvs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549314696,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8551eaa3e8049e097d09d5995df9e8de","name":"ros-humble-std-srvs","requires":[],"size":87807,"version":"4.2.2","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59277c6d94e51fcb3aee980d763ded4cf2c6106e23ef91bcf3e6ca0ca04c7311"},"ros-humble-std-srvs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642094809,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd64e0ed23cd64fee31904871b5ec74e","name":"ros-humble-std-srvs","requires":[],"size":96677,"version":"4.2.3","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd4eb92c6b6b59163a8117d834c71c303b8a28d95c35fe3966541b5cd040dfd8"},"ros-humble-pendulum-msgs-0.20.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549887895,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6d2bcca3342288503d9d8249516e5a36","name":"ros-humble-pendulum-msgs","requires":[],"size":72936,"version":"0.20.2","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1d7ded5be2d2e61fad5afdeea5127795f648c667109d1731e102f1b7768bec1"},"ros-humble-pendulum-msgs-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642494666,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e9be04bba519c7f877a410b7de01f7e5","name":"ros-humble-pendulum-msgs","requires":[],"size":81502,"version":"0.20.3","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c56778fedf65a8459b4d0116d97eb8ff0bb09d97bd6bb4e0033173be588bcf8"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670550015737,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da6dc88f8143c2ae3971b9264ea31141","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":186571,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb5aa58966cc1e7ed7781778a549ba2c22c9572bd90a129e49d15ebb987a7c3b"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642501083,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"29859bc31ae2d11efeaa7da53328a9b5","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":188565,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a724a81fe708b3426538ada2aba117879ebbda97ccde519df13b5a1f51ed40b2"},"ros-humble-action-msgs-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549898929,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f608e67e0a7632c17feba85a13205e3a","name":"ros-humble-action-msgs","requires":[],"size":95528,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da213454a098f6d2b6808b9a92dca35fb74cdbef7ad5155bfacd4c8c7c61bbb8"},"ros-humble-action-msgs-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642504684,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c32a8903cc69e4bb1432c1c84c4c1fbd","name":"ros-humble-action-msgs","requires":[],"size":106985,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ef9d4881f910863445ed84b86ad83484990fd66e5a951610988b2fbeaf7b051"},"ros-humble-rcl-interfaces-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549938646,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"46f5501caf6f8f551a7d073e5b9b2a7b","name":"ros-humble-rcl-interfaces","requires":[],"size":315813,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2029dee4b979b701ede16a2d0e4af601331f3323da6a4ea9f93126aecef69917"},"ros-humble-rcl-interfaces-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642523818,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8d6200a5c038da24f55baee64bb70c5c","name":"ros-humble-rcl-interfaces","requires":[],"size":349739,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a971871143261286aea328fcfa73a8253356b0288182e40bf6cccf837c97b63"},"ros-humble-rmw-connextdds-common-0.11.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670549859931,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"65ccec4ad3afb8953901b103d63f137e","name":"ros-humble-rmw-connextdds-common","requires":[],"size":29891,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c755c06aa6705b375d3bba26e88fdb554c29c1eaf94b227d966ea11c218c2178"},"ros-humble-rmw-connextdds-common-0.11.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642471011,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7d28109647189e90279b993542b8c844","name":"ros-humble-rmw-connextdds-common","requires":[],"size":31630,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1550f20dcf9a5a19a9c13fdcb99c175c3d131e1136c45e2c1e24ac99f2d9745b"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670549945305,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cb9de7f48a6e08216103fd2b382a9e89","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":227376,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f14c67b532ad620cd287623cba033ae73e3abe9bb12455f4db9cb4e0fd0eaba"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642505814,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fdfe0e988a2c283fd495809467e1385b","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":229100,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa0753a8e4216c70f794c73c39502f669b9a9c43f63ce00c4a6e8003e337b37f"},"ros-humble-controller-manager-msgs-2.18.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549924642,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b828a73aba1ecc5dbc044d00e249142","name":"ros-humble-controller-manager-msgs","requires":[],"size":288769,"version":"2.18.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"559a8b97187a697857962b421546c47ec3a9ba3a0532f93a2f0d151c5d15f504"},"ros-humble-controller-manager-msgs-2.22.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642517977,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"75ed382a460fbf5c24b70f1842403a13","name":"ros-humble-controller-manager-msgs","requires":[],"size":316975,"version":"2.22.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1b0a03b9a4359f5c9245a115acfedf104f134f619d77b27693647ea05a75f5a"},"ros-humble-std-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550091086,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d0d2cc1fc44411fb0426a0051574d861","name":"ros-humble-std-msgs","requires":[],"size":270500,"version":"4.2.2","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c03cc4584556a8f6d91cd2a2a652cc10648b24c4d13f5b128528eb8afa16b510"},"ros-humble-std-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642529505,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"708f3df3d7ed8e462be73b0931f1ef0b","name":"ros-humble-std-msgs","requires":[],"size":307795,"version":"4.2.3","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e68062c1c970c10465798b0530ac2660570b1ac0126a12f9bae9f3a789e11d9e"},"ros-humble-rosgraph-msgs-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549939824,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8720ddccf3b6673ca3ef5ff70bbf7630","name":"ros-humble-rosgraph-msgs","requires":[],"size":49299,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0896cd9d81a07c901625df5c0240280f40a7efb115edc68f7c9d319dbecdfce6"},"ros-humble-rosgraph-msgs-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642492109,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e983283da8745a617efce9cda1324447","name":"ros-humble-rosgraph-msgs","requires":[],"size":54311,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e35148ffb444b69898dc0ce1c2034d5fa4899a242d31c8dab75b0d85f03b0095"},"ros-humble-statistics-msgs-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670549878261,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"75642ceac49d5f271ead445c8bce3977","name":"ros-humble-statistics-msgs","requires":[],"size":81650,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a74400751fa3f08ab2d33170eb4609b5d2883745a440abc4fe7185ce08a9c9af"},"ros-humble-statistics-msgs-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642494056,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c0870206e0a9c3301ed4d3cf5d18c61e","name":"ros-humble-statistics-msgs","requires":[],"size":90438,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4be9f7c7a51846ba265b65e38922a1f669b3a62e5611266f4dfcc1080fab2ae9"},"ros-humble-rosbag2-interfaces-0.15.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550030889,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b37673e699dd13960c4da61b2c1e379c","name":"ros-humble-rosbag2-interfaces","requires":[],"size":193333,"version":"0.15.3","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ca279f82603be4df23489845194032c4d5505d7e2e0319131493aff166d19ac"},"ros-humble-rosbag2-interfaces-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642506838,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"12b872571dd849f69ffb6f8acd9bbb2b","name":"ros-humble-rosbag2-interfaces","requires":[],"size":204516,"version":"0.15.4","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebc8d7f4247c60ebb5fb06acdc2bc2f28a20623232327ee15eabf7239b608050"},"ros-humble-ackermann-msgs-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684265722906,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d68e531ef122e59f5bb30c69c84769ff","name":"ros-humble-ackermann-msgs","requires":[],"size":71802,"version":"2.0.2","binstar":{"package_id":"63927ba26643907e3b602285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fd1b0cc8fbda084dc80c8a512a735a03840637a8d9ae5d1a90da234cbebd3ed"},"ros-humble-action-tutorials-interfaces-0.20.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550534066,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8c27d7b81414922ebcfbe4f1e21e2573","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":109750,"version":"0.20.2","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9614b06dafe83105e4c477dd54b6a91588668764a490a85c352adca16ab7527d"},"ros-humble-action-tutorials-interfaces-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642934685,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e08e7bff1878920c38092a5e9d35d78c","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":119776,"version":"0.20.3","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c22aee663844c395f95045c21acef569be60c29375a2b47c6cbe5eb7b0a17c92"},"ros-humble-ros2cli-test-interfaces-0.18.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550721410,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"006e0b03d2bb5081464aae3f96c7b813","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":145181,"version":"0.18.4","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"956a60842e24e4cc5ad3f0ad8c6db274439c03084f8a2563d747fd7e4cb75bd9"},"ros-humble-ros2cli-test-interfaces-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642936864,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c61e3d5e9a1963abc42e658daf93e914","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":165976,"version":"0.18.5","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa7e23f456df303987626a21dfdc17029536ed9a9f2e976f16ae8435d803ab40"},"ros-humble-example-interfaces-0.9.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550621768,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7d9310f673a822aac7d96a107e097e3a","name":"ros-humble-example-interfaces","requires":[],"size":370694,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7da74008041f040ad04128282fb80241766ad2f29b6c9242ac466bb7cae95f2b"},"ros-humble-example-interfaces-0.9.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642972722,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1d44141848afd09a9932bca898ad03f0","name":"ros-humble-example-interfaces","requires":[],"size":401842,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4401d390899ed836beef24c29d1c657929c3773d6576dd49d8b6fa269badb245"},"ros-humble-actionlib-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550603499,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"92c2267c0afc964ca97836d5ea9362ec","name":"ros-humble-actionlib-msgs","requires":[],"size":81485,"version":"4.2.2","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77c149fcfa32a20a07e6531536b0f9a5a3f71df97ea3826bb7734c1088443369"},"ros-humble-actionlib-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642928471,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"306b03df644ad6123ccf525834a6805c","name":"ros-humble-actionlib-msgs","requires":[],"size":90805,"version":"4.2.3","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9a6a142f4bfd32f2681e38d142cbdeddb43ad2c8ee9dae009da52808672a7e1"},"ros-humble-rmw-connextdds-0.11.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670550691551,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"82c15aa44a52be420a18b7ef8e8051f0","name":"ros-humble-rmw-connextdds","requires":[],"size":9245,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b56e8a6b39ff53b8fbc535d9fd2a4846420fadcad86ce862ca0c6180bdf10638"},"ros-humble-rmw-connextdds-0.11.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642901555,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d51e6de412482af8fbe0b096b6082305","name":"ros-humble-rmw-connextdds","requires":[],"size":11021,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96e317a94b8b14be782ee5758ef601984b6b871504c66e7d052c5fd24367c433"},"ros-humble-geometry-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550616965,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a851f33ddafd0a5deb906896e0e50342","name":"ros-humble-geometry-msgs","requires":[],"size":270916,"version":"4.2.2","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c4243b7977d367be5a44669fda64c9828a0e308071b9d5bbabeaf601f6716b5"},"ros-humble-geometry-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642966248,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b47fd4ffd904d1e07d3e1170ad1d2e88","name":"ros-humble-geometry-msgs","requires":[],"size":291968,"version":"4.2.3","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96c14e03a5e56b308595e37e63bf9ae23063b2b1efa3a9c692f83073a9af4da5"},"ros-humble-composition-interfaces-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550698772,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1c6607a5c8100e7510ee6241a56b152d","name":"ros-humble-composition-interfaces","requires":[],"size":128693,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c557e64f868ef7a91bc1ef693c0dcb1a612f8a5cb66f101a464ef079bb595bc4"},"ros-humble-composition-interfaces-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642931414,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"195b132513a864a16e1eba52a8c4e619","name":"ros-humble-composition-interfaces","requires":[],"size":139605,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28974994a3fe3e168adba950bda7a812c026610a192b9354d099330608a7eaa0"},"ros-humble-test-msgs-1.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550638231,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"87c5452a4b8b3eab2273bb8581b045f7","name":"ros-humble-test-msgs","requires":[],"size":683160,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04fa32803562d137222f2fa70702e3bbd0b91f3272487bcd17e162743424bc0e"},"ros-humble-test-msgs-1.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642987826,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a9b82dcf51ac2f7994e4027d03c9455c","name":"ros-humble-test-msgs","requires":[],"size":768298,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9965af34f6c71db018cb2ec94fc296a574511eaee8339386c5d37670f411ff6c"},"ros-humble-bond-3.0.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670550526593,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7eaa887a51855d14fd1b6b9c9fa67c18","name":"ros-humble-bond","requires":[],"size":66579,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54e87bb651a746e3f097e18184f1e4e30cc82dbc147bec3bfe2c734a27782d7d"},"ros-humble-bond-3.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675642927769,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7ee4b88d1ecb0f630f7d5dc16a3aca6c","name":"ros-humble-bond","requires":[],"size":74148,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a4d334657ceb0f206dc47672084f4cde753293126a794f3010f9f9c1e266dc8"},"ros-humble-geographic-msgs-1.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684265760748,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"61e5ce043fa3611d686dd404f189ccb8","name":"ros-humble-geographic-msgs","requires":[],"size":321734,"version":"1.0.5","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"814b83ff5b7b7c83f4a7dd09a69c8ecfc510aabcbe04af0f67e7762e9a035a8f"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674555699621,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7898aa812fa97b4c58fc7a5411e8a71a","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":361860,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"660140d586bdc44c98505984f10ae97b2125a2be7d38fa053bd4b4e9d9885ad2"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643429327,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62fbd84ec712aea93f17d9a06f98df56","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":340565,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9515f6d424434353e71d27332f27c610598a25c23b846bf462cec10d5f6309c"},"ros-humble-diagnostic-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551280170,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f048cdaa1d55fb8d3caf41cf7fc30b6b","name":"ros-humble-diagnostic-msgs","requires":[],"size":132131,"version":"4.2.2","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7674f0e80d97497195e7471dc9af80d42e918fc6ed4d3b8c7c82d333b1093a0b"},"ros-humble-diagnostic-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643399297,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"665bf47f2321ed472aaa53d0db4cca5e","name":"ros-humble-diagnostic-msgs","requires":[],"size":146149,"version":"4.2.3","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"993333e1bfaff23f1693fe3d253ea1c2f33b0be4388a3943e8d057f38988f0de"},"ros-humble-trajectory-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551256038,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"67817d148cde9f01694ffc19456b3433","name":"ros-humble-trajectory-msgs","requires":[],"size":116816,"version":"4.2.2","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ded7106f46e43c329cd0db34cf333295a5458e91d057be5b7be457b7fd251f6"},"ros-humble-trajectory-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643390454,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4eaf999a34ec7445a8df38826108ceb7","name":"ros-humble-trajectory-msgs","requires":[],"size":129733,"version":"4.2.3","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a87f65b4059e1063ba743f63baf8746d85d5ab19ea2bc98e47c0afcfa8b3d399"},"ros-humble-shape-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551176023,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"50c9bfc6475f663a28784369395de15c","name":"ros-humble-shape-msgs","requires":[],"size":95633,"version":"4.2.2","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6052f457da2f02ad7e9545f6ed9caf032bfc7de5df09cf61b48c50c2448e934"},"ros-humble-shape-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643387920,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"365f5544c0456661f0093c1fd6f3d785","name":"ros-humble-shape-msgs","requires":[],"size":107220,"version":"4.2.3","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cff3cf27142dd22b9bab79644fcf46e64c247b1df21c95240e1cb3af5e1069e"},"ros-humble-rosidl-runtime-py-0.9.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670551218771,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f91efb4d1b8105bd8e977efd2fb80cd7","name":"ros-humble-rosidl-runtime-py","requires":[],"size":23499,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f462b785491d2f2d085f30d5d019da886c8f55a7ca5e366f8b897b46d80c74f"},"ros-humble-rosidl-runtime-py-0.9.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643358868,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30f1381c4fd7a5fa0f56d7f8244a034b","name":"ros-humble-rosidl-runtime-py","requires":[],"size":30557,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56ccf3f7ae9a535623b5c7120678c30e65af6939fdb770b7a8b6c7a9eb0d6475"},"ros-humble-nav-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551198522,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1137a90a19d408b00fbc0f6c9ddd3cf0","name":"ros-humble-nav-msgs","requires":[],"size":179461,"version":"4.2.2","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42dec67953e1128f610f600a45ae61a91c85cd9215f6446d38936d9ec88b4235"},"ros-humble-nav-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643399659,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9aa5246a0ffd7511e309563a558ecfef","name":"ros-humble-nav-msgs","requires":[],"size":202026,"version":"4.2.3","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ada93baf3cbe5ca259b37e414ddc6d6b9a96d75af9498229f6111fc06d263fd"},"ros-humble-nav-2d-msgs-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551281478,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"66f45f9c5974003fc24040b84ea3fb18","name":"ros-humble-nav-2d-msgs","requires":[],"size":95384,"version":"1.1.3","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89f50d9fef503029dceeb6233a7f1b2199a9d846ce38fb43bd199f4ad41709d0"},"ros-humble-nav-2d-msgs-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643396552,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"de6e48af4937ced46ecb6d633957cc06","name":"ros-humble-nav-2d-msgs","requires":[],"size":108298,"version":"1.1.5","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdf8a0038dca7911844fa590841d064a099b9947b11b9ad0e7fa85b6993d6b06"},"ros-humble-vision-msgs-4.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1693352497322,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"fc9edeb3e97a12425cb1fc27b2f9fee6","name":"ros-humble-vision-msgs","requires":[],"size":226091,"version":"4.1.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"001c64cd022aa7c568e0847ab2ef0c1be7f6d368b6f68ee6d9a3cb711adcd98d"},"ros-humble-octomap-msgs-2.0.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551186720,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"44dd69d596b5c63cf1c9dd3159f6a248","name":"ros-humble-octomap-msgs","requires":[],"size":111783,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f013de1ff981440b2b2380f82f03a1691efb0bec9f522d1284c87d032a22522f"},"ros-humble-octomap-msgs-2.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643387629,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5c70f6e8f4fee23221ce592b82f37d85","name":"ros-humble-octomap-msgs","requires":[],"size":122735,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5390dc8f8155f9661109ec1f16ff764664b2e58337bae5cfc45d32d9de13afe"},"ros-humble-ros-gz-interfaces-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551228598,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5518322c120886a764a104ebe2b578d","name":"ros-humble-ros-gz-interfaces","requires":[],"size":308737,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94ff33057de6c4630b6d4d9867a61416d23c2e118918502ab6b625be2e1159ba"},"ros-humble-ros-gz-interfaces-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643431786,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5b68ca7a4512b897a54e5cb38b52d3a","name":"ros-humble-ros-gz-interfaces","requires":[],"size":346112,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a2c618bde2ef60a4a8248fd7336277286576b2047ff5b3eb55b9ee7e60c37b1"},"ros-humble-tf2-msgs-0.25.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551168622,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"66a9f3feb0dafb8f78ee4a36af95858b","name":"ros-humble-tf2-msgs","requires":[],"size":149070,"version":"0.25.1","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cb1eb671a1882a08fbda839bb2a0f09bd63dbdb62c525bed8b2bd1d4f823b7f"},"ros-humble-tf2-msgs-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643393096,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b339276fb14546eeb1832dcbab793937","name":"ros-humble-tf2-msgs","requires":[],"size":168805,"version":"0.25.2","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edc42228e329baadd734214b24b40921b436a8557518843fb39b979ced056992"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670551196822,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d1e41f59452730fb59af4884d45831d1","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":155603,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cc1850fb1fa63da8e6ef15d7875b874a983e26ea7e2cf25b81cdf90a3e0bffb"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643379936,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"33ac053e3fd36ad7392e955962d2aa01","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":157502,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff0d88082694c85d183ad9a484277e73efd3d2bb7536dad46c6a6bf755a25cfa"},"ros-humble-sensor-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551352965,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dfc0e9446762d88d7270e86ab2849572","name":"ros-humble-sensor-msgs","requires":[],"size":423155,"version":"4.2.2","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c941b4844e03b744a72c4fa32df9a878788a67a5c7a35a2c0c513457970e253a"},"ros-humble-sensor-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643451514,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e9165aaf903931176a4c5e9b94066e9","name":"ros-humble-sensor-msgs","requires":[],"size":482407,"version":"4.2.3","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0db7a17875f18b830dd79c1d43349c33ed2a6a0dc93772228f46413fe18a4e3"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670551287498,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd73e4e0f48951585b2b3362b2edfdc8","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":125647,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36d79158c9c1e5edae34c2a63cbce576317be489e101fb1079fff79c9b570534"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643383302,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bb2548a6d6c4d4683df3f0b62654f55c","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":127505,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19e4da081a33bbcba488d29fa46eea62ede4813a8ab06d76f4ab3a5691a34810"},"ros-humble-tf2-0.25.1-py310h01ff0be_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h01ff0be_2","timestamp":1670551163059,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6dfb9cfa6b6d59856676902492ca699a","name":"ros-humble-tf2","requires":[],"size":100123,"version":"0.25.1","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65d285266eaacd88cc438cd14c894ae7c02d764b3f9f02669bb009fe54a4eb18"},"ros-humble-tf2-0.25.2-py310hdea95f0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hdea95f0_3","timestamp":1675643380165,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7d1abf94a537181fcefe6add4b1a2020","name":"ros-humble-tf2","requires":[],"size":101947,"version":"0.25.2","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcfbedbadb86b7ca032cee48221fde166e6b8c48c35e882d52d6ca6849fa4c0b"},"ros-humble-ros-ign-interfaces-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551850214,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"91ddf1b9cf0d187096bb0a372d48784e","name":"ros-humble-ros-ign-interfaces","requires":[],"size":275386,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c200a0f79472bf5485d1d5ab992f7eb551c132cdc0730d1031c7d4a4c5c3c2b4"},"ros-humble-ros-ign-interfaces-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643888813,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"405d63bfa96a7ce24ac07cf1364907de","name":"ros-humble-ros-ign-interfaces","requires":[],"size":300668,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aca968692c87953ed35ef3a98eaa60d9c2650a177203dfbe6bd4b0afddc46cdd"},"ros-humble-sensor-msgs-py-4.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670551818990,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"76e71a86f532e2e0507cb8580412c6db","name":"ros-humble-sensor-msgs-py","requires":[],"size":17378,"version":"4.2.2","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c0d99c26fdf0f5a478399581af6a944bc0bcc6bacc9abd39c0dcc93c80adf40"},"ros-humble-sensor-msgs-py-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643817620,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"663620bd3f18ee3e0a5b147046738046","name":"ros-humble-sensor-msgs-py","requires":[],"size":24939,"version":"4.2.3","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1858f6d12dca2adceb3ee26ae76fbe5c3a7df8dafbf26a900e72d85233b87653"},"ros-humble-visualization-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551954851,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3abb40a4e650f89326df65db40d26067","name":"ros-humble-visualization-msgs","requires":[],"size":281172,"version":"4.2.2","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"854ef09b34e4849e14c6008ccd449eb58c20ea2aa5296ee7bce92bca4e218f71"},"ros-humble-visualization-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643894729,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0c7318ff735172445fc2cf205cc6abd4","name":"ros-humble-visualization-msgs","requires":[],"size":317522,"version":"4.2.3","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1dd45ffac8256e39635d9cc503b3bfff08ecb2d81a05aa559ea990272112c59"},"ros-humble-stereo-msgs-4.2.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551796368,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c5b005b1120d4a12f3ef0364eaf79035","name":"ros-humble-stereo-msgs","requires":[],"size":57230,"version":"4.2.2","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8875ce582200e02b96d0856dac498a52e0ca09104c227dded0b9157f057ffa2d"},"ros-humble-stereo-msgs-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643850198,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"42239b7a52fd1bea8cec2d478e6149c3","name":"ros-humble-stereo-msgs","requires":[],"size":63945,"version":"4.2.3","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f3c0d4d32f69e84641f4308e00c5ced611462439aa76bfbf47d613b78feedd5"},"ros-humble-rmw-implementation-2.8.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670551764929,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a76a001938c074d33d3034cc3bbe971d","name":"ros-humble-rmw-implementation","requires":[],"size":31566,"version":"2.8.1","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b28d33953b54b48d10365fd3bb683d63e72b1124ee415586dd9b8cd54de928ab"},"ros-humble-rmw-implementation-2.8.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643831338,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"43d106a14cc3a9522c2db0598f008437","name":"ros-humble-rmw-implementation","requires":[],"size":33707,"version":"2.8.2","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53543ad1507d4e5e5a0bfc0667e8b020f2fcbac8926a306e1634f69720664e86"},"ros-humble-object-recognition-msgs-2.0.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551813842,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dce489699a71bc5b25572cb5cbbd523a","name":"ros-humble-object-recognition-msgs","requires":[],"size":214620,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2d646e2ee9cd6f20f51fa6d986991a9734fa5440f23aa65f4d696dd55813c12"},"ros-humble-object-recognition-msgs-2.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643866574,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5ca2c5a194eb49777a143f740db2c316","name":"ros-humble-object-recognition-msgs","requires":[],"size":244817,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5bcd0e509c9a8ec25818a0ee166e149108c530c2aeb88035002fdb0b70989ea"},"ros-humble-cv-bridge-3.2.1-py310h3c28573_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h3c28573_2","timestamp":1670551964128,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5f6caa058875ce0bfc59dc8b4a4c7e31","name":"ros-humble-cv-bridge","requires":[],"size":134530,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3948ce11fb910d4c794d4a3f47427e237497f9c32eec52f6a16214a44e57910"},"ros-humble-cv-bridge-3.2.1-py310h3c28573_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h3c28573_3","timestamp":1675643929896,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a171f704d829767aa887a8cd9d9839d0","name":"ros-humble-cv-bridge","requires":[],"size":142547,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"800029cf5062c7e4a9ff4631308e856cfdb49bc90a438299cb320781b1d4e8ac"},"ros-humble-dwb-msgs-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551924197,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5ecdfcad0bfaa18425b56c5f4bdacb01","name":"ros-humble-dwb-msgs","requires":[],"size":189474,"version":"1.1.3","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd37026202cc7922edcac6661eeaa53f4155ba1bcbf82d0c93762ebac710165a"},"ros-humble-dwb-msgs-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683137815,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4938ef19c71f4e77f46a3eddeb114726","name":"ros-humble-dwb-msgs","requires":[],"size":203180,"version":"1.1.5","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddd185802bf50a07486c70db11ea585d560153fae54cf65a67f8b4f419ef25a8"},"ros-humble-map-msgs-2.1.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551817336,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"69274b7554f9921436722fa8226c6455","name":"ros-humble-map-msgs","requires":[],"size":187115,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebb4c31fbfb3d64167913cfd98436d63384efffeb6919bff3c59b826346979b8"},"ros-humble-map-msgs-2.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643869878,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1298b7d6ab6ebaed891439cea5f4461f","name":"ros-humble-map-msgs","requires":[],"size":206394,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0c0a2089b31577c234e4e7d1c9bde401df9b22f2e138dbd07fd8201a3e0b041"},"ros-humble-control-msgs-4.1.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551957998,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"604e1e6532230765ef86ab091ae73420","name":"ros-humble-control-msgs","requires":[],"size":487654,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b20ce7f9e5da55c6262ea48993edd36b6ebe653165ab4c9ba5e0de0c99c25e4"},"ros-humble-control-msgs-4.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696974463765,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"632f109b1f2b700eb0b2b77eeed9921f","name":"ros-humble-control-msgs","requires":[],"size":586606,"version":"4.4.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ee87f6b74a7d2195b74d32e51360e8fbf5ebf0ecb6122d0c2e35816599f530c"},"ros-humble-tf2-eigen-kdl-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670552027507,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3d3fece8b6cee6b4d5392e4c546b6ece","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":19019,"version":"0.25.1","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6b09882a692c1c6fa87d27baedde110760184ddf5d85da4dccdf8fc9658fb2a"},"ros-humble-tf2-eigen-kdl-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643839548,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"354291b66b8ae3a7a20593f00772f41c","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":20923,"version":"0.25.2","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cf559955b0a499298baa5a06d7feecc8863b3c209d7e891ae90b6dfb680e4e4"},"ros-humble-image-geometry-3.2.1-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670551942174,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dbb8990ff8b8fb6267d1adabc9823cbd","name":"ros-humble-image-geometry","requires":[],"size":42108,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"709052bf9cdaf2c57c840ddbd8b6daec2fdab29073952a755e5adbe8be28fe8d"},"ros-humble-image-geometry-3.2.1-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675643897929,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fab6164c6a7ac2231b1cdb948c77ade8","name":"ros-humble-image-geometry","requires":[],"size":49947,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14f90648bb02df91afd51e776a75f5f66cd08591588c59ee74c0353c9f3fd79c"},"ros-humble-gazebo-msgs-3.7.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1677541432207,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"83e751b7364a53d7a3ab1f00c3c8890a","name":"ros-humble-gazebo-msgs","requires":[],"size":798123,"version":"3.7.0","binstar":{"package_id":"63928103d9a997aae723fff0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e4c4a158dda3c324bbf0d8c45822a59ecbe852f86f12cc1863ca431f318192f"},"ros-humble-pcl-msgs-1.0.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670551798904,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"96c4562e713fb0284c53f06450d247dc","name":"ros-humble-pcl-msgs","requires":[],"size":115025,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caa931a6a0d24db13df709dc7521c749d0c6c53f353a6b41b07fbc772b693c57"},"ros-humble-pcl-msgs-1.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675643868019,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"46395e207472bdc5a940d7f69b6f74d4","name":"ros-humble-pcl-msgs","requires":[],"size":129189,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7053d8b7f61d7f3d919bd4b4e36d59237d369d820e46dc7dc8fc545a38dac2cb"},"ros-humble-vision-opencv-3.2.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670552559170,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"28b1ce106f3b50cdb2727f8b30a80da4","name":"ros-humble-vision-opencv","requires":[],"size":9305,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3925dcf6e68368c94c8a2bb569bf80b0bb5fd2673590efc759e2d09a2747ca4d"},"ros-humble-vision-opencv-3.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683108300,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c403fc34a1be51539cf9e9978a253fa6","name":"ros-humble-vision-opencv","requires":[],"size":12085,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64e307be1bb4fbab0a1c03b34b694b76398981f6963153d20b2ae9bae91e4eeb"},"ros-humble-rcl-5.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670552482712,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c15e20420d653b1bc98d34e9312d46e8","name":"ros-humble-rcl","requires":[],"size":146517,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b42ba5b738172efe8dca79f9002b4176bcc90fd1f2c218005909d46adbffb0f"},"ros-humble-rcl-5.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683100949,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49c5fbeb2e64bd5d242a32e6e0df0624","name":"ros-humble-rcl","requires":[],"size":149098,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab2e9c8b48c84b0246ca4013ccee56b92fe4908cc2718306ebf9541e4103a31b"},"ros-humble-common-interfaces-4.2.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670552483009,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6d35bb92dd61f86106d7311508813fb1","name":"ros-humble-common-interfaces","requires":[],"size":9515,"version":"4.2.2","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b32d86492fb2b79c22e4f3f210b2d5405fb311dacd87db608d8ae54924322896"},"ros-humble-common-interfaces-4.2.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683083661,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6bb9c2248791b4649a5af3d96b1b4bd5","name":"ros-humble-common-interfaces","requires":[],"size":11192,"version":"4.2.3","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff7d4e2bf0012b86e6278ea29e93d19166f1475a60a197482a7d3b01133be959"},"ros-humble-moveit-msgs-2.2.1-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670552955636,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5632ce58c320d67a202e766df0b31774","name":"ros-humble-moveit-msgs","requires":[],"size":1593943,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0edfc9497adcb78fcf94c97f755b855987f8461a9a99e729e8b8ef96069d1b90"},"ros-humble-moveit-msgs-2.2.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683323648,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5ddd425a4382e9646ba4dcedc6dfadd4","name":"ros-humble-moveit-msgs","requires":[],"size":1791500,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7c6c384582a92637412d1f696cda7a5fe04c006dba22e2bdb17bbe7d953fa4b"},"ros-humble-rcl-action-5.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670553427191,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"15e411728cd88b4e92477a24763be853","name":"ros-humble-rcl-action","requires":[],"size":53083,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac8a9fed92db8ae1a008c52c08bf1cf244a5c57c67959daaad1a41fbe3af0178"},"ros-humble-rcl-action-5.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683756480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"103a0e7ccbef25656b2b5643f83e0605","name":"ros-humble-rcl-action","requires":[],"size":55328,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac3e712de7cfebc3be8e670fe2e38b0b708808f8b020e625b9b35ff517408974"},"ros-humble-rcl-lifecycle-5.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670553493628,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d179e1446d7a72fb8a566262734f4b0f","name":"ros-humble-rcl-lifecycle","requires":[],"size":32555,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"182c9d4122237d7edcdc7ba818d813c0858edb4366d025c93c0b2e0f5f0f9cfd"},"ros-humble-rcl-lifecycle-5.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683756962,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"544a46bde8ff39cfa17916959ec43d1b","name":"ros-humble-rcl-lifecycle","requires":[],"size":34830,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6ad1255e44f93cea1150a9076dd19d5727a886e253735788aff4244f7b149f3"},"ros-humble-libstatistics-collector-1.3.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670553436781,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1b689a377eb7071c882574d742e83153","name":"ros-humble-libstatistics-collector","requires":[],"size":29786,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53dbdd33df435af42dc51627ac4e487d92937569f151b1cb2e306624e5d13348"},"ros-humble-libstatistics-collector-1.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675683752915,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3c22ac5319689b5dd109d9f410338bdb","name":"ros-humble-libstatistics-collector","requires":[],"size":32077,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7582c56d20a6c4231c506612c39b0594cdad813f03a95fb4f21b219fc137a6e3"},"ros-humble-rclpy-3.3.5-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670554308045,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30be0cd7b88f9e7746617978c55998be","name":"ros-humble-rclpy","requires":[],"size":454109,"version":"3.3.5","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf32a8ead804d6eefd1502d3727e1968d46ccf246e8c7ee9a6f78750f5966eef"},"ros-humble-rclpy-3.3.7-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684252488,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1a82a4737acb616048fdafcb67652538","name":"ros-humble-rclpy","requires":[],"size":552677,"version":"3.3.7","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6bad19955cdbca07ae0443d9100db19b7a6733474b4d8c7ebdb01e166f78c84"},"ros-humble-rclcpp-16.0.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670554111332,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b57255ddc1abea6d1a6c399e38d6b99","name":"ros-humble-rclcpp","requires":[],"size":862923,"version":"16.0.2","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7d637304646ab33a190b13e8b47c42ae90ff936065d8b203f1235596fc4fc55"},"ros-humble-rclcpp-16.0.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684247848,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03a7a43c0492600054f6d7e073ccf507","name":"ros-humble-rclcpp","requires":[],"size":867618,"version":"16.0.3","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4033d4ada7d050e9b5ec1d29f0eafab6cdff26da2300f3e7b38c350b0f151748"},"ros-humble-examples-rclpy-executors-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554716327,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"906e18f8469840cb9e650c797cc18708","name":"ros-humble-examples-rclpy-executors","requires":[],"size":16536,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cee6e615c6f74c014b07768f15c8a628741e6094fc14eb6a2fe3acb11241e8f"},"ros-humble-examples-rclpy-executors-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685232069,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"523a1420da91f7c01296601ed65e9536","name":"ros-humble-examples-rclpy-executors","requires":[],"size":22916,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb45eaad4c720d8fac33c3e76af02d6bc7532e08d356820067b3928b6ca83fd0"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554761917,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a78598c40b33ed1dc32e9f9c9ac712e4","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":12357,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86cd7638243cad4223f3c1cc8bca77363487731fe07c745d5405c73c179fc738"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685082585,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fbbd63789d3510ef3f08906c1bef2e2a","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":16699,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d743d43dc96ef318ebcd9dc2ede440022ed0779c7f1c7c074a1c775049c56cc"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554718408,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"55fe43bda847b4801f7eee3ed59089b3","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":15608,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10e7c12b4b39c92bdc4d4e2c9e97a237428372e4b787ba08c45467c19b182dea"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685092366,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b46fa5e8824e675dd2a36305c09cf196","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":22886,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45e83dc44072159e7eba4912d1bed33fe53dfea6ee79cba365a7ea538a9f42df"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554716910,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"95fe3cc7d9030c264328a04925006d11","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":10964,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb5fe6f3b9ff3c06c29789a56211d7fa5919c80802a971045052e3e0ee8c3fd0"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685081708,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"22182108f917d41301aac25cb6337283","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":14413,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"532136f9dcc2ff8e35b53000a7ee57c81659f9e5f38266627a818bd15e9a6b11"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554762352,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c6197661b860f0570920bfad95f30c5a","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":14411,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a913e2fea8434f4191dc2a2e77ab0dab86c84a41bdc5e766ba059f2e3308e7d5"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685206864,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4005b4df7205b577e34fc37063f03bb9","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":20588,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d72315ee81e0c325d4c858a51d723616f28e81504f182aff1ac8cf41d09ae7ae"},"ros-humble-action-tutorials-py-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554728709,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d694698400a5182da34d85e3c9f1f789","name":"ros-humble-action-tutorials-py","requires":[],"size":10596,"version":"0.20.2","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7e9130562a8d45d69388a7864da02538a93d90beae4b733aa1213c38329e7a8"},"ros-humble-action-tutorials-py-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719770383,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a7d28029403b11a6df1fbf445037e88f","name":"ros-humble-action-tutorials-py","requires":[],"size":14780,"version":"0.20.3","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22b4eab87081f91b05f1a23faabe924cb7a41e2a82d1573108d23270c1874e22"},"ros-humble-dummy-map-server-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554744438,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"602776e13f589c070a7530be9c1bf0df","name":"ros-humble-dummy-map-server","requires":[],"size":64587,"version":"0.20.2","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f073642af9eb1e05f5768d480417cec78e748b07f5bb4d6ba78825538311bfd"},"ros-humble-dummy-map-server-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684676900,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ada4f1bbeb61d2b4e05c4dd59615f48b","name":"ros-humble-dummy-map-server","requires":[],"size":66894,"version":"0.20.3","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5a9aca4981340f82f5231bfb2bcc332516fe8475bf19de9356a8b1539a72d47"},"ros-humble-tlsf-cpp-0.13.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tlsf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554778920,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3efa5235f6ddf3415da186315adf8642","name":"ros-humble-tlsf-cpp","requires":[],"size":159531,"version":"0.13.0","binstar":{"package_id":"6392870bd9a997aae7276fbe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46560ad6ced496949f42bde4bf89017476aa8e9bbbf22392f8f904f957c29c00"},"ros-humble-tlsf-cpp-0.13.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tlsf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684691687,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3a28d1b2c1802d6673cbe2fb21d73c6e","name":"ros-humble-tlsf-cpp","requires":[],"size":161052,"version":"0.13.0","binstar":{"package_id":"6392870bd9a997aae7276fbe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faf25673d5e68f1286ef655cdb7398ff3c027acdf99737b6e8c7302f2b7b2ea1"},"ros-humble-dummy-sensors-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554857186,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"97bec0beccbbfeeb2a64fc26239bf874","name":"ros-humble-dummy-sensors","requires":[],"size":94622,"version":"0.20.2","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e27d753fe691f623763a49e4a199737a3684e5c189bb010086574ae774cf21f2"},"ros-humble-dummy-sensors-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684671952,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"20aac6d2efd6ef491ce3bace6a8f4297","name":"ros-humble-dummy-sensors","requires":[],"size":96958,"version":"0.20.3","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72d24944d74ce14d294306920faf44f9218a76d0888dd7b5d9d180644e327c6e"},"ros-humble-teleop-twist-keyboard-2.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555009759,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"01badfec431f50512a8a8b3aae8dc929","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":11484,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7696ca73057eec1d9d75290ed5a4056dfa92ac1e3b7bc00f577184b7671a077"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684634009,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"71985a37da38b358b37cf3c06a565c4f","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":14894,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27457c69b3dfb76ea0cacb858002af631e90fa86fdb3b212648464e6e0fc95ae"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554830912,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"879eb415a14829ca0d75e8e20bba0b4d","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":39299,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1dd8e4ab34e9ab6d7423b800a4444b0ad8e429b308594901932e7f1e155c109"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685291728,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"32983df2dfe428ba6dff63a825c15e9f","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":41562,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff3409e1ab0c44b96fa13d4183a37bac4eaed279f63843235d2571bf8c6b3002"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554759595,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ee057287b76502d103445b314ec208a6","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":232134,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68641b1f06f083e7fc209503184eec19474a167d91694e49a25680bbd8d2f052"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685164729,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fad75b53ef602c8af021cf4aeb56e1fa","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":234740,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dce1c07d554419c43026cfb0732b980fa6da2b5b4aabdf3a21d862b58ee07502"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554735500,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5a5043e5e8909a2c24a328ad4c9a2ef1","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":29761,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc0f97003ffc5420cb06bc345849b4f21bb4f8d9445cca57cce96da4018b7a55"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685138839,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da6d3565d3117cbcf1aade0f0e11732d","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":32042,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8bd8e8bb0758c8d44f8f03e9b4d8822755366cb49443ce2cbc7eda637391cb0"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554804068,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"14d028904cd79ce11bac86b53767bdda","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":35743,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"131b31c91debaae7f7f312fb7a07e772a6246f1db006e6ed963e912fc7f5cb5c"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685144427,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0662d1fd919a2bc8253c0df85b5d8c7b","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":37978,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1965d914b1713bfeaa2e166fb241301559c3ca75ffc4118d646d55e03dfec063"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554811233,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c94c2415fd67643f9c7e63e4858af6fa","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":140435,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11b7b3716ec3a03bd4e58999692b3033a4407c81224d26fed9df048271985146"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685150385,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74b1fc4e65b39b61449756394878e1f2","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":141680,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf147cd29c04d8b7e6a6c2fe9c6b06f21cca201bf3375a383cc1ed0c545f46b4"},"ros-humble-launch-ros-0.19.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554798972,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1df7f0300acd76a36eb22094d554d2b1","name":"ros-humble-launch-ros","requires":[],"size":65833,"version":"0.19.3","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fab12169ac4661a59bbf454ff0b7fb76fabe62cfda87ad4a34deac07c5a0e4dc"},"ros-humble-launch-ros-0.19.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684626443,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac65759a3cf8d00a795e0147b2b73f7c","name":"ros-humble-launch-ros","requires":[],"size":107448,"version":"0.19.4","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74e9379c570c31a957bd57e6ec24c32bc8bd7f82973b834ef4bfb873494c4eeb"},"ros-humble-tf2-py-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554738426,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1196d8e0371abffb3fdd054904eed858","name":"ros-humble-tf2-py","requires":[],"size":31790,"version":"0.25.1","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c51c57464dabda7cf6244d545c60477da70bcb796b2c2e75ec12a0161b0c76bf"},"ros-humble-tf2-py-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684653658,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"38fd6b4d4fdc18e6e0cbf6330555582d","name":"ros-humble-tf2-py","requires":[],"size":34339,"version":"0.25.2","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67966678738314094be2294ce982e848ee44e0f5738f05f3fd115aed383553e3"},"ros-humble-rclcpp-lifecycle-16.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554745634,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"06c5d2d69b0c977d593cebe28f5e552d","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":96713,"version":"16.0.2","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"375cffadf59cfac01c825c3532614074924f06712cd8806b25a1820a54fd5028"},"ros-humble-rclcpp-lifecycle-16.0.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684670278,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"35d7b453dd58f11c862d47cde78508f9","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":99235,"version":"16.0.3","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e24c92c80ab4ba619919b078911919c56ab37dce8e58888bb176c8757989b258"},"ros-humble-rosbag2-test-common-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554721669,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"97bc430839959efe17f6f1873a1b509e","name":"ros-humble-rosbag2-test-common","requires":[],"size":18397,"version":"0.15.3","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8422eea4ae5f443e8fd160abe7a38225602a1b5877b35ba1e6ca3b26938806af"},"ros-humble-rosbag2-test-common-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684639033,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7d441d3c51e346dfa97ab7ff3f80fa24","name":"ros-humble-rosbag2-test-common","requires":[],"size":20752,"version":"0.15.4","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e670cf87780e7ba943062fb46f3f1b37823971e822b61146a69ca3c23f5dd42e"},"ros-humble-demo-nodes-py-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554798476,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ea87c49169d07a465e2d15f4fa91341d","name":"ros-humble-demo-nodes-py","requires":[],"size":16637,"version":"0.20.2","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16b7291a960993c4da0fc730fa748ff59b3d5fe00f7976d94dc81fc20f39a687"},"ros-humble-demo-nodes-py-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684651901,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5a85e284e6d0c1ba9ae09a84039719e3","name":"ros-humble-demo-nodes-py","requires":[],"size":23078,"version":"0.20.3","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1951c5e033a332f91fb84f4ba149b3c13d9a5b0212c94d408d1d4690e4bf9bb7"},"ros-humble-ros2cli-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","packaging","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554807828,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ef95b9c45f36e2b693f103cc875c3ad9","name":"ros-humble-ros2cli","requires":[],"size":42691,"version":"0.18.4","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de3da512f868c632d4cc61ebbc27790f03fded619a1b093bcb2c913867fbcb9a"},"ros-humble-ros2cli-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","numpy >=1.21.6,<2.0a0","packaging","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684648945,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"712bc974ffed12e70e7d1cd0b0ed1d2f","name":"ros-humble-ros2cli","requires":[],"size":67173,"version":"0.18.5","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbe0285dc9485625e2d87528390ba30c4960dcf1ecceb17125046037057255c7"},"ros-humble-rclcpp-action-16.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554747873,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd7ad60067b9f6d2107ea773c92be60e","name":"ros-humble-rclcpp-action","requires":[],"size":89841,"version":"16.0.2","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b7578dea915a295a7f4f5d52bd41f8038608afad3eacd847f21e5c472188347"},"ros-humble-rclcpp-action-16.0.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684666919,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"adf04d2657dcb7e1f85814cbec03b577","name":"ros-humble-rclcpp-action","requires":[],"size":92130,"version":"16.0.3","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8006efa9ef0e9982f2d961efd54d26dc8703456920930e5c1257f88189e975af"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554763344,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"26b60afe075d82501f19977a6a1cf774","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":9880,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73e66d3d3f21ceedccbc48605f3d5275babb9d45914583bbf44bf1f67417f311"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675685075532,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"79f70685426f6e6e369489c2bc946b37","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":12880,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09701876a815d13701748c9aaaddf4a7b88f35d3315728d3779e063654557a1d"},"ros-humble-laser-geometry-2.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554727365,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3fb05aa13e87052e8f3ee73859b3ffc1","name":"ros-humble-laser-geometry","requires":[],"size":35327,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60e33387596ed6bcecea04ab45ab0eec20c17db43acb337ee034d61b6b2c5077"},"ros-humble-laser-geometry-2.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684650251,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3436b23adc737f8bca4efb586d606bd1","name":"ros-humble-laser-geometry","requires":[],"size":40932,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"470ee08ef8413e9c7bd5f8bbb97cf3823cb8ad3d9b89e54d4b0bd144b92f566e"},"ros-humble-rclcpp-components-16.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554824598,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8e8809404c51b743a5a5b614b83ae59e","name":"ros-humble-rclcpp-components","requires":[],"size":115156,"version":"16.0.2","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ede9d2164528f79e4d74ef467976d369772ef86094091ea407346dd541531c6f"},"ros-humble-rclcpp-components-16.0.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684676923,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a560345677cef6c50e45ca9533c83f4f","name":"ros-humble-rclcpp-components","requires":[],"size":117656,"version":"16.0.3","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd9a688c78d3af546ddd0cf62cbdfceb56b25dc2915210716c23f47a8eb92a8f"},"ros-humble-intra-process-demo-0.20.2-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670554980961,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b1e65a502c304ff15fc6b440b12e8063","name":"ros-humble-intra-process-demo","requires":[],"size":789462,"version":"0.20.2","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8b20b9456d5e906c9b3b1f1f237185b6b29aa5a627eea4ff4d86addb9c126f8"},"ros-humble-intra-process-demo-0.20.3-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675684887736,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c579ed98dc3baaa3dcc34fb60933120d","name":"ros-humble-intra-process-demo","requires":[],"size":785817,"version":"0.20.3","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a658abf77563c5d92d0e4baf7b05bcd1c51360af85b02011fced3c8e9f4af98"},"ros-humble-urdfdom-py-1.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554776884,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cedf246263d23299d781d6498cdf187b","name":"ros-humble-urdfdom-py","requires":[],"size":32698,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"386c568f023d1a6777c2ddc1dfba469aba219bfd2fa97ad9184a5cc70bf6bc49"},"ros-humble-urdfdom-py-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684636911,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"312ce5ca2b67d4eac33ce151f1eefc3c","name":"ros-humble-urdfdom-py","requires":[],"size":55729,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7f7567da001b7fba6131ac3e5773566fe19fe70cc2b7758291ceb21fa341a31"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554718249,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5ef10c208937fbac707ebbb3d991436","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":10577,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17b60cb4f12776d291a0d77fc9721a365de6ab4b6a89bf537a1c952518fc0dff"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684769150,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b74962d5ace380b4d7601f043d296e78","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":13755,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d43835d03677fe53e0ad4422ed80c4e89028efa4da0cf9f3d995568189bc1983"},"ros-humble-geometric-shapes-2.1.3-py310hae548c6_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.*","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hae548c6_2","timestamp":1670554848791,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ce80af69d21d94b434cbbdb4ef2cf1dc","name":"ros-humble-geometric-shapes","requires":[],"size":112427,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fac18ab2260900617a503596cb4f8147cdcce94e6ee3855c1a0b6f8c44d162a5"},"ros-humble-geometric-shapes-2.1.3-py310hae548c6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.* *_cp310","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hae548c6_3","timestamp":1675684709883,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e5f59b81f3609510f998805a224a3796","name":"ros-humble-geometric-shapes","requires":[],"size":114742,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfbf9dcd30708ae397def9ca5477f9ca15a3c28e0da5ec447ee04c87aebb989c"},"ros-humble-quality-of-service-demo-py-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554720846,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"731535a33a79419cc0db1a436d8b4d98","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":21233,"version":"0.20.2","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc5287d44bb81ab065330774eaeee7d0e42f4287bcd6231714e1125e6b330fb6"},"ros-humble-quality-of-service-demo-py-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684826466,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"39036c7eb6260db2b2e1c6097a351aa2","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":31346,"version":"0.20.3","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f83f9996d711a9b64085a50db22726504e1692b0301fd6f5697446e77a380ff"},"ros-humble-camera-calibration-parsers-3.1.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554838666,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3944101472647ffbb1d7c303f57644b4","name":"ros-humble-camera-calibration-parsers","requires":[],"size":77001,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ca067d5e6eefff7f803bcb1c675ac584fe9cd63e17c2d699bd8eb5d860f9d0d"},"ros-humble-camera-calibration-parsers-3.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684661607,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"072b07a7f1386772444a4614c4872a4a","name":"ros-humble-camera-calibration-parsers","requires":[],"size":79344,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9f480c466b7490dbf85fa4be10d96aafabae47d4d2e04e873c6b7b57c7b3d42"},"ros-humble-rqt-gui-cpp-1.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670554925954,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4fb13933f1f87acde102b7ea56474c23","name":"ros-humble-rqt-gui-cpp","requires":[],"size":145436,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8f0fc1d91571afd8ab318d5d02cc00b9b674edbac44f983d103623a2e2bacf7"},"ros-humble-rqt-gui-cpp-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675684729278,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0ae9f81b3b581e943b86c75aac54fe0a","name":"ros-humble-rqt-gui-cpp","requires":[],"size":149043,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b702c326141f66db083ab6508c3bc882672b791461d988206c51b26f7ab31244"},"ros-humble-filters-2.1.0-py310h5d61e26_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5d61e26_2","timestamp":1670554762101,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"87acbcc62d2fc8868df25c2a7d4582fa","name":"ros-humble-filters","requires":[],"size":85422,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c93bef1c21cefb5d47fc833c59dcecd9bd64bad881ee2493284447c56fca1171"},"ros-humble-filters-2.1.0-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h405a52e_3","timestamp":1675684680574,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e414cba04be3a001192cf84820c429e1","name":"ros-humble-filters","requires":[],"size":87729,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e19abe831e70f11986778d5130259eff5d9fce177e6ac35e74285c286e1492d"},"ros-humble-ros-gz-sim-0.244.9-py310hd647f65_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gflags >=2.2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hd647f65_2","timestamp":1670554948013,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"48ff4aa7a4d0bad2961ae4518ef44c7b","name":"ros-humble-ros-gz-sim","requires":[],"size":216760,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ce5614efe5be1889646b4b8ee13df136223dbefee33f81e4a247dba494afb06"},"ros-humble-ros-gz-sim-0.244.9-py310h68ede04_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gflags >=2.2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h68ede04_3","timestamp":1675684836295,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"43e84c287bc4ebea005d7477eab3096d","name":"ros-humble-ros-gz-sim","requires":[],"size":225124,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e91f53258e4609e5d9f33ae5c5ca17c969d90762dac5337536b0bd0523dd0562"},"ros-humble-behaviortree-cpp-v3-3.8.0-py310h444f19d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ncurses >=6.3,<7.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zeromq >=4.3.4,<4.4.0a0"],"build":"py310h444f19d_2","timestamp":1670554856253,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e392fb7592ec667be2c995e6640b719c","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":375563,"version":"3.8.0","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9ed8fa01a945647d66ee48b9d7c0638f3ccbd1f7b2c38a36a6bd372170c4441"},"ros-humble-behaviortree-cpp-v3-3.8.2-py310h8531fce_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ncurses >=6.3,<7.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zeromq >=4.3.4,<4.4.0a0"],"build":"py310h8531fce_3","timestamp":1675684689737,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad589ae764330a1aa0b84279893787c2","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":384327,"version":"3.8.2","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a4a2da679758f5f1218d13823f6ca4be707b4124655ef87c9b17344f85cbed4"},"ros-humble-rqt-py-common-1.1.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670554756620,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0d9cd48f86614c283e370763fd3017b3","name":"ros-humble-rqt-py-common","requires":[],"size":41546,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d3a3a72a2ccc0c4720b4e83c7b4489100f95f64894c35f682d5b30d2e334e3e"},"ros-humble-rqt-py-common-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684671375,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"401fb15e67b15a785905154f8b42c51a","name":"ros-humble-rqt-py-common","requires":[],"size":65737,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d5e380d1da040446bac720bf5422bc84f23470e60eb0085885c1c93907b9cc8"},"ros-humble-rsl-0.2.1-py310hc285a83_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc285a83_2","timestamp":1670554741980,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"233dc683a761594aa016e75e1f59a20b","name":"ros-humble-rsl","requires":[],"size":26385,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b080d1eae62c22a7d4d8e33d9c997a58063f65ece6ff9815e29384b4c108a06e"},"ros-humble-rsl-0.2.1-py310h0fc90e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0fc90e0_3","timestamp":1675684691868,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03c3994e3238a3ffe415cffa716c0712","name":"ros-humble-rsl","requires":[],"size":28696,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4e182c2c9a1c16504dfab34ca3239001ccc8611d89b20259c91607b6447dfd2"},"ros-humble-launch-param-builder-0.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554796105,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1f259941a85942c3629c3b9b58878e3b","name":"ros-humble-launch-param-builder","requires":[],"size":15104,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ec881d1a4e9e04448614a09f4c0340d73f7996277381f3cc6d8dcfeab1b5e32"},"ros-humble-launch-param-builder-0.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684630054,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9696b39e301fe02218846a4c88df50c7","name":"ros-humble-launch-param-builder","requires":[],"size":19000,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f112fc83b5f13656ac69e9682707778294a6dd9a0528019f35ea0878f540e5a"},"ros-humble-rqt-gui-1.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670554976902,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f1884487e7b57762913c581ba7ebc9f2","name":"ros-humble-rqt-gui","requires":[],"size":104376,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c36985c2ee92be607dc16dc24ee85801c8122e302342eaecc6972edbf4bd6875"},"ros-humble-rqt-gui-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675684691939,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8d61224bc1c1b9210c775e7bf93282e7","name":"ros-humble-rqt-gui","requires":[],"size":114481,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e895ad924437a6beed996c0b6c6c9315e331ba2acab36f05f60fda49d7826c1e"},"ros-humble-bondcpp-3.0.2-py310h8cea35b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","python","python_abi 3.10.*","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h8cea35b_2","timestamp":1670555488803,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cbaf8e42aaad761e9e12ad0a0627c016","name":"ros-humble-bondcpp","requires":[],"size":174249,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"477cbf793ceb52e3bd2c6072733246346fdc0d11d7ba1d79a6f598e585e4e51f"},"ros-humble-bondcpp-3.0.2-py310h067b400_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h067b400_3","timestamp":1675719806946,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"22f9f5237689caf05e9ec7326ae40e7d","name":"ros-humble-bondcpp","requires":[],"size":177827,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2a75e0f1e4e714db9d7d8c722c3a14e32b1bc46e9a31cca9eccb5d532979345"},"ros-humble-tf2-ros-py-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555428705,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b3300db04767e1319d54a35e2002b3b","name":"ros-humble-tf2-ros-py","requires":[],"size":25021,"version":"0.25.1","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c05b1112ad50f07d6840bc829e868d4e2722f12d12640cc50fce165c8ce7c804"},"ros-humble-tf2-ros-py-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719759307,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"518512802a1fc90e3fdad46bc8d7f29c","name":"ros-humble-tf2-ros-py","requires":[],"size":38469,"version":"0.25.2","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eec799a85070d23b7e8a7e97d786ad355ac0ce7345c19fc7304a688f8096d31f"},"ros-humble-nav2-common-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555480268,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"79778bef502bb2bbe148002a349f5314","name":"ros-humble-nav2-common","requires":[],"size":18070,"version":"1.1.3","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8089bfe1db3e5017d4e759b1d8e5bf6383ca091b66d05e683b52a6949d1bbecc"},"ros-humble-nav2-common-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719759787,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0668ce308031fa23aaa583f2010130ae","name":"ros-humble-nav2-common","requires":[],"size":25990,"version":"1.1.5","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f1df2f97c096283893a190eadeb7b7b7b4d5e44e5fcae21acee3dc027935bfb"},"ros-humble-launch-testing-ros-0.19.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555477069,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"245004b134a301b6c26748fd89016263","name":"ros-humble-launch-testing-ros","requires":[],"size":26306,"version":"0.19.3","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cef156046e7ab8c399996313c536e705ca8fda674f5a52f4cd7928def4270e1e"},"ros-humble-launch-testing-ros-0.19.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719759240,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"624839f27534a491ceb78744ef8c3647","name":"ros-humble-launch-testing-ros","requires":[],"size":36802,"version":"0.19.4","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3c13753365ba000ff8454361c52097870fa7d976e2fe20c4f29fc6696c078b8"},"ros-humble-message-filters-4.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555418287,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5bd2f8975418cfeb4e33dc03571aa508","name":"ros-humble-message-filters","requires":[],"size":45779,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3ae3ac180d3e732b9ef4794806655f80bc9c8c034f6f07078720bffec54828b"},"ros-humble-message-filters-4.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719765869,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9c59a04484a5cd7e3e0733d5cbe4248e","name":"ros-humble-message-filters","requires":[],"size":53293,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fd01b3b95f1e3e1618d7e93314d80726f8668f2ae7f0312ad3d8361b5bb8a3e"},"ros-humble-rqt-gui-py-1.1.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555505943,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"39de9f15eca6d61ad64bc732ba76e3e8","name":"ros-humble-rqt-gui-py","requires":[],"size":11617,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e00a52a0cf43c1ba8ddc1915514250dc3af52e85dd53edee9cfc101ea591204"},"ros-humble-rqt-gui-py-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719795911,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aee0a2fe46aaee6952d1f57275c2750b","name":"ros-humble-rqt-gui-py","requires":[],"size":17067,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8a170af3bdb82a47e6b1dd01a92f1ad798dc7628eb8cf8e91cda5602c588739"},"ros-humble-realtime-tools-2.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555425340,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f2888d1139e4d1f1ef14a6c546c589c9","name":"ros-humble-realtime-tools","requires":[],"size":29721,"version":"2.4.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"202f27cc70926df91d3f9e46470bcb04ecc2e7459ff8d010fb3581663286c626"},"ros-humble-realtime-tools-2.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719766600,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"38de7f81d34e23a5d2cb6031ae3e6342","name":"ros-humble-realtime-tools","requires":[],"size":32394,"version":"2.5.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1e9f5cb2244b4900ea634f1f994b4be727f8995748b8ca80531d69535dad1c4"},"ros-humble-camera-info-manager-3.1.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566003501,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"afd6ce3717a091f49c8e7f42ea4191f8","name":"ros-humble-camera-info-manager","requires":[],"size":53403,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e67b2f85523cfde6a37baca556be7187beb5a14c98643bdd17ac84abf7f2092e"},"ros-humble-camera-info-manager-3.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719787554,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cc35a013f6325c3bd6f95648a12fc519","name":"ros-humble-camera-info-manager","requires":[],"size":55825,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"024f18eba3447b65b52687d86d5a2ef9a8b64e3715433d2c53963e85f12b7c15"},"ros-humble-ros2multicast-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555564671,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2b6c34b25525973a2136ef1c84dc57d9","name":"ros-humble-ros2multicast","requires":[],"size":12133,"version":"0.18.4","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77fc30dbb6080c315703c1d68f8272608a78aa5dd97b4c8206135fc78f4b91af"},"ros-humble-ros2multicast-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719755212,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"28ffd00c51fe07ae20f286a636fe29a7","name":"ros-humble-ros2multicast","requires":[],"size":16865,"version":"0.18.5","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e193e952e1c359176959d926ea6010b1fe05136d19a3b3a0af09182de9ca155b"},"ros-humble-ros2lifecycle-test-fixtures-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555501047,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"10d1b6b95b1c6087335dd4a78c582608","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":21601,"version":"0.18.4","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec20fec42a0b6a1597b9fb17e0362e2e94ed535f58e952398b8f7ea24f5b34b4"},"ros-humble-ros2lifecycle-test-fixtures-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719784391,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1c91ae87dc04c57d1ffdb4786b810c72","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":23898,"version":"0.18.5","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65ebbbe0e8bc1eb56b3c714eaf9a102a821b3c1a1e18b485a408828d3b884d9c"},"ros-humble-parameter-traits-0.3.0-py310hc285a83_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc285a83_2","timestamp":1670555521396,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7cd482e256a77b137c56129659e725be","name":"ros-humble-parameter-traits","requires":[],"size":12836,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d317d6ed0fe113fd3187fc1e800ff0e758906c827b9f1302c57baa53ba948707"},"ros-humble-parameter-traits-0.3.0-py310h0fc90e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0fc90e0_3","timestamp":1675719759725,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4c4d80310df02a2a99af1a92bcba4470","name":"ros-humble-parameter-traits","requires":[],"size":15269,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa4ba644aaf35ea58de4c9031f01441e19f8d0417b70e16290d60c7c10d95d56"},"ros-humble-rosbag2-storage-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555567590,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54878e58a1f526effd9541f4a6f7f47f","name":"ros-humble-rosbag2-storage","requires":[],"size":203734,"version":"0.15.3","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f52c0632783f2d956f9de8a8d5e7a49ca7399d53958cc3e61a6619c05c8bd36"},"ros-humble-rosbag2-storage-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719786005,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"046347c4163bacad3823c378d1156d59","name":"ros-humble-rosbag2-storage","requires":[],"size":205575,"version":"0.15.4","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13e5c5b40f8f03fc4332b1bcb3eae4afec5dbce00223bff89f365fd59d5d837d"},"ros-humble-srdfdom-2.0.4-py310ha6e3482_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310ha6e3482_2","timestamp":1670555538390,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5318628d9013a7ae066a91e33a2263f1","name":"ros-humble-srdfdom","requires":[],"size":89154,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8388ded979051b849e59314b34586b6f8f0ac7fee4e5e962922cde6edc7e5187"},"ros-humble-srdfdom-2.0.4-py310h64043c8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h64043c8_3","timestamp":1675719802234,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"378e22d4f9cb1c0d2c4ec3ba3598a8c2","name":"ros-humble-srdfdom","requires":[],"size":95280,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bea11cff4d6ecae860eb718c0999b91e7b77958181c8a9cf7799ce491212d048"},"ros-humble-diagnostic-updater-3.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555452759,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6fc85f47e567249f3701cfaecec3dbc5","name":"ros-humble-diagnostic-updater","requires":[],"size":128749,"version":"3.0.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f33589f7eba86fd51ba69e2f62126305388adf4fd22872c7f4bedc63cc35f8b4"},"ros-humble-diagnostic-updater-3.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719804891,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5cf3316e9577f440920a9a509e5f64c","name":"ros-humble-diagnostic-updater","requires":[],"size":147210,"version":"3.1.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0a39d720f9b3c4f8da2abe433076ca490cad6609aed1c47ec9f2c0be5571e92"},"ros-humble-hardware-interface-2.18.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555465893,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d2e30c7fbdf3994955b8d4b827f9208d","name":"ros-humble-hardware-interface","requires":[],"size":292429,"version":"2.18.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e13cf6c200d87a5ece6837c6be88ae440dd28b35d6d174c7add131ef53238647"},"ros-humble-hardware-interface-2.22.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719808261,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7e0f1e29644c77e1eeeb00816dec5dfd","name":"ros-humble-hardware-interface","requires":[],"size":298851,"version":"2.22.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a11fd462092acf9567c691f02dd2b014ac28813ee419247427580a34f714a72"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555479044,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8a1bf909a4eae89857f043f380a26ba3","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":167293,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0a5c333a2cb8d05e9fd1b74f4ae0f2af2f833fb813cac90708c7078de4f4aae"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719820082,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9bd95fd9e0999a90decd9557a8a08289","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":169488,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edb881749ec453b7e725a6416192c37366780f56e4afdafcb126834a93afc162"},"ros-humble-action-tutorials-cpp-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555474630,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62064fe96b54bc80da3b607e1bff7b77","name":"ros-humble-action-tutorials-cpp","requires":[],"size":113791,"version":"0.20.2","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"437332adeedef9267faa9b87df96b1a2097fab147a0caf73c2f6292f1d0183d0"},"ros-humble-action-tutorials-cpp-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719806695,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"578948e9c3913157030742d2fe866b7d","name":"ros-humble-action-tutorials-cpp","requires":[],"size":116119,"version":"0.20.3","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b81f715cbd0dc6b0f55f2af4028445b3fe3458b4d506c0a42775b31963243bb"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555459842,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d38e7afc4d34bb80bd0e8708216295e","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":137469,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"602aa773214ea4f7d050464475bedfa38078089f947f16dabab27b374791d5af"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719791785,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ee6af19c5aa46ac7fcc99dd8d04a7827","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":139935,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbbb5470223aef6cb8170f4065d8f6bab972bc09477f95533fb1edf7f796f781"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555555130,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cef06890f40ebef3cac3b24fc5a3d102","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":69140,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a301ddb846f2359078725cb7c9e166ed72e4423209f3ae91d58d301493d8602"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719795811,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ab34a18bcc3e48ac258275aa43c87d51","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":71411,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ea82938f9f66100bae1be839919cf8b349088ac8d284e71f8acc78198a5396e"},"ros-humble-depthimage-to-laserscan-2.5.0-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670555659654,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"930b9a265177d0d4358101a2cadb69c6","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":212312,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ce40f6632a1a4d474d8709cc644b9ef2dfe544e19be8cd24daec081cb40f93a"},"ros-humble-depthimage-to-laserscan-2.5.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675719884711,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"60df54c0666e53515214e02f5e74cd69","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":217274,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b477a5c5ab9293fca490ed0d49b8e26310e2148b29f3cdb216a8ef6f3b3c7592"},"ros-humble-rosbridge-msgs-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686904571987,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af9379b07e0830fbd2943fa1277cd562","name":"ros-humble-rosbridge-msgs","requires":[],"size":74516,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc2a3a9bae3118a436738698025c7ba7ce97e886ec11e95cf06a0b7510e66784"},"ros-humble-joint-limits-2.31.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1694672878981,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"c03fe05c398affad47d6cbf2405897fe","name":"ros-humble-joint-limits","requires":[],"size":16900,"version":"2.31.0","binstar":{"package_id":"63928b25d9a997aae729c4ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3aa44b956d1c81e49ea80321115e41108be45aa3a3948cce728ee78adcabaf8e"},"ros-humble-joy-3.1.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558859446,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1673e709435c1ae12a22e414d32d5892","name":"ros-humble-joy","requires":[],"size":187325,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b677e95a7f2c9e3b342e42d627cfe8e949eec7cbae6d7154d479182b689bf6f6"},"ros-humble-joy-3.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719838324,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"937d3d17daf04c7034f45b2446aef7f2","name":"ros-humble-joy","requires":[],"size":191061,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a47a450d2142ed1875be708daaa7a8f88f2272b5d3240583e6ee5aca5c81901"},"ros-humble-rosapi-msgs-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686904614572,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9690dd5d8f561caa114d8718cb9cfbc5","name":"ros-humble-rosapi-msgs","requires":[],"size":443701,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49db5002dfbe4b9e8b1790e69e5e0628681671d48f5d3ac5f4c75c2c811cdb35"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686904604442,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"551257ab9df610c99837835bb2a02726","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":307445,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"578a883491f5fe120bb04e6610cd95a72d72d8f9b680fcb3185213606b6efcc2"},"ros-humble-turtlesim-1.4.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1670555650298,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d333bb7f7f19e47c3dadb491a23a4f61","name":"ros-humble-turtlesim","requires":[],"size":836329,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b934fb461407497e3616b5284dae9cfd237b34970f1bdfeb3edacb7037b66353"},"ros-humble-turtlesim-1.4.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675719897777,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5145b0a7c391d35dd4e58fb915cfa4a6","name":"ros-humble-turtlesim","requires":[],"size":837926,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c09ecab3bc41c6f5dac33646c2e35986bd519068657843a4ae5e98816ce2bb9e"},"ros-humble-topic-monitor-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555717672,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"82c7cca4fa8c975be3e38c5246de2698","name":"ros-humble-topic-monitor","requires":[],"size":21591,"version":"0.20.2","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bc53592dff150443a3a935fddd4a4828c583c3906d49632eaa539d5b9a0ad07"},"ros-humble-topic-monitor-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719756877,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c70201542431e4380509eb677204ad6d","name":"ros-humble-topic-monitor","requires":[],"size":33283,"version":"0.20.3","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a456037bafd96d9af868075bfbbcd37a328612059b712c571403d8d478cd648"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555774242,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"500007b586af5481f4d5e243ca9ad083","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":960046,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0b0a7a62e78ea474aa8f36e04c45730ebfbc1f3b40e4c383d411b00c6e9643d"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719828179,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da2b21c34624ced684a6f70d2e7bfe72","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":951759,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0504d883d7bcf21d3c478afca26f6824c099bddbe782667c0fd5d0d912ddaded"},"ros-humble-quality-of-service-demo-cpp-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670555593216,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f5e1255c8dbc6cdf8e2de5a0d5534c75","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1114938,"version":"0.20.2","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edb2860d8955febd5cf6f0d67d4bbf9dd95932e71de5c3735310435142d83b84"},"ros-humble-quality-of-service-demo-cpp-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675719827057,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"71f4d15c51b7083d7d2210e862a83234","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1113355,"version":"0.20.3","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0dbb76ab4ee07eaf560f55c14bad7887a42a09b6d2d51448c85789f1edd96c6"},"ros-humble-rqt-graph-1.3.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565987483,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aa760d4c6150de7db37a89b3919ed9eb","name":"ros-humble-rqt-graph","requires":[],"size":45769,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f41d5c16f9e2b19c520895562d046c36090057d6370894c2a89f01f408c11f6f"},"ros-humble-rqt-graph-1.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720437601,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dcbeabd65aea1a768a9fa5c845922899","name":"ros-humble-rqt-graph","requires":[],"size":78795,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a916db18fbf3cf7950c6741d59a5e0a10001de88b36223f205adabbed794800"},"ros-humble-rqt-publisher-1.5.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558844695,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"329f6d644497f6ec4e218114aca95ef0","name":"ros-humble-rqt-publisher","requires":[],"size":26038,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82db6d4340f74ef2e8e232fe594be30183244f122553f5255fc6303b20e93a62"},"ros-humble-rqt-publisher-1.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720431977,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d6b9065490823b807d602acfef35516","name":"ros-humble-rqt-publisher","requires":[],"size":42315,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bff03cec445ffff92f9f9874cfcfcaf78d08a406940730e30d7649b4dc855761"},"ros-humble-rqt-py-console-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558799704,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dda6a489a7a3b1708776db9271dff133","name":"ros-humble-rqt-py-console","requires":[],"size":15187,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6645d27bb2bc0cd483e8733ec78406a6f71ff72aba56f2dbc110b3e295c71d7"},"ros-humble-rqt-py-console-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720433590,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7f19df9eb76e5f9870880a82702427c8","name":"ros-humble-rqt-py-console","requires":[],"size":21487,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8829eaf0cecc6dd4e0a695f34f9d2ad93b5f8e9096a05f5606ac7b8b162065d9"},"ros-humble-rqt-shell-1.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558795561,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d778de4457bad237bbe1b14c72dc1c89","name":"ros-humble-rqt-shell","requires":[],"size":18255,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f11321b3a8f7f1d8fa9dae5ad4cb95691a149e0a232c0665f89e762bc397887"},"ros-humble-rqt-shell-1.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720436957,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6081904d47356b0785c1b550bdf6550a","name":"ros-humble-rqt-shell","requires":[],"size":26953,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"129b7e2695dd3f6a425624e4b6fae26ab150eb30953bad9324920b0c59847404"},"ros-humble-rqt-service-caller-1.0.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558840090,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9df63846a54f8f036d2c044c02630999","name":"ros-humble-rqt-service-caller","requires":[],"size":19550,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c3e31ee2d425ee8eaea5e1eab33d56ffad8e5b0b4664835e20b95f7cc2c94ab"},"ros-humble-rqt-service-caller-1.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720432782,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"931a45e313539168005788704f52ab4c","name":"ros-humble-rqt-service-caller","requires":[],"size":30518,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87342cfbb9256334c6650f508b4e12f71f2dfb4bc843455115131c7341bcc941"},"ros-humble-ros2test-0.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558784722,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0dd5bad6482d848b0af07eab8582e657","name":"ros-humble-ros2test","requires":[],"size":8875,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aab6b39475df5ea7b2a0c4e0fae368066e8a1462809fb9ec658a3aeec3831e26"},"ros-humble-ros2test-0.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720406579,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3a77589d0491cf1654f507fc111bbc5e","name":"ros-humble-ros2test","requires":[],"size":11814,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f78e5d5005fc89cb906c037ae54502a70b2f23222a9a6b22776dc3e580642e86"},"ros-humble-ros2node-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558835918,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a44dd1aa6973a5e31120bb179eca4069","name":"ros-humble-ros2node","requires":[],"size":15196,"version":"0.18.4","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b0d773ad085345705de79432a256aecdce4f38d3d88d5b4bea57c4b76dcd222"},"ros-humble-ros2node-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720410952,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"23b3263b9706895c7b46e7dbf210c21e","name":"ros-humble-ros2node","requires":[],"size":22457,"version":"0.18.5","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b1f81692d496ed3a6654b96b163820000d1cc6ff6ba5b9190bbf28ac339f102"},"ros-humble-ros2service-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558784642,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9a404830bb779bf8472f4d54bfdbe235","name":"ros-humble-ros2service","requires":[],"size":16416,"version":"0.18.4","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6e329221bfc9e0fef677e648cb4c10d38e4a349882e73d6503ab4cc33cfcf1a"},"ros-humble-ros2service-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720411391,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a6aac6d39c18bf683fa3f34cf5af8ffa","name":"ros-humble-ros2service","requires":[],"size":24336,"version":"0.18.5","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58eed8b03f358857c5d2ed7b3e79a70869a2c9a65e56719402d0948a31ed1a6f"},"ros-humble-ros2pkg-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","empy","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558883657,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"50761bf84ee65fef372d52ee95f41ed0","name":"ros-humble-ros2pkg","requires":[],"size":27452,"version":"0.18.4","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36818c17db7039507e9e8e0009b29773a3e2d27a14e7d6cea975dcd079396a15"},"ros-humble-ros2pkg-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","empy","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720408580,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d4e637fe80c6966c740274c3ade14c77","name":"ros-humble-ros2pkg","requires":[],"size":39463,"version":"0.18.5","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"754152341571963ed2360db9ef4e0bab072ea9f0593b31e879c14f9cf2c56e96"},"ros-humble-controller-interface-2.18.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558859078,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c9e73452fc2dd4d1f7f933332e2483af","name":"ros-humble-controller-interface","requires":[],"size":38248,"version":"2.18.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eeca955c81a05f0a4919f82d8660ba36783fd718e029f9fdefeb7b4228fa458a"},"ros-humble-controller-interface-2.32.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697091496700,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"7b24698f6d06dc9c04940f387290b33e","name":"ros-humble-controller-interface","requires":[],"size":41136,"version":"2.32.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28a0532420905ebda89a5be3794f97a864077e5ecbcb1afe2038a345846eb834"},"ros-humble-pcl-conversions-2.4.0-py310haa0a74f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310haa0a74f_2","timestamp":1670558996561,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30f7ae3c977586905996f56c9c56b75d","name":"ros-humble-pcl-conversions","requires":[],"size":16551,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a48b8299b83988c47d886b23a8390dbc0e05fab7ec3cf4fc7392fcc7c7c1447"},"ros-humble-pcl-conversions-2.4.0-py310h8ea06c7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h8ea06c7_3","timestamp":1675720509238,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b37e54f9bcb6eb22fb747dd54dcee053","name":"ros-humble-pcl-conversions","requires":[],"size":20653,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60d33632e7b3a55189c6eb9b5002e0b46ceb05ae2f61752b82385d544596ae5d"},"ros-humble-tf2-tools-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["graphviz","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558779607,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"04975424e9a6cd695e47545c697b3a67","name":"ros-humble-tf2-tools","requires":[],"size":11647,"version":"0.25.1","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7654d73f066af436c8a906059c2c9b655361daf7204cf33ec99241291fca15d7"},"ros-humble-tf2-tools-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["graphviz","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720417134,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"44c9692e573f2acefd974bdc6d2c86fe","name":"ros-humble-tf2-tools","requires":[],"size":16716,"version":"0.25.2","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cab4645ee1847f00df017dff06ca1d7afcd59e0994a099e39b9230f42af47c9"},"ros-humble-rqt-console-2.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558851648,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5b808de2adefc13ad49f6c0efd1ad547","name":"ros-humble-rqt-console","requires":[],"size":55970,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac60466a8b80b16b17c9ec612478a038ed1f64c052de55ef14a42d2719c52364"},"ros-humble-rqt-console-2.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720421340,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e24771d1d5975fd46f069c72dd8eca7b","name":"ros-humble-rqt-console","requires":[],"size":92721,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"673aef29b6442b0bc15e6316a186f58e9012e8420d5c8acf283273a12c18fa25"},"ros-humble-ros2doctor-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","psutil","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","rosdistro"],"build":"py310hb58d347_2","timestamp":1670558838930,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5d85d01ac07316832f7ab16328733581","name":"ros-humble-ros2doctor","requires":[],"size":33189,"version":"0.18.4","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b365fde44e42a09ff32187e3e022a5c8b3fb9c76c775818bb3b0e352c1a2617a"},"ros-humble-ros2doctor-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","psutil","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","rosdistro"],"build":"py310h010ba66_3","timestamp":1675720413614,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"65c03f205d821f63e77e96ba0f91fd60","name":"ros-humble-ros2doctor","requires":[],"size":53811,"version":"0.18.5","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b14d6fd90e704b3665873f16a731be49ed45f2e61bba5b4e9d1f653b2c219fd8"},"ros-humble-ros2action-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558776372,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9518a8f0c0945864da3282f8e60638d4","name":"ros-humble-ros2action","requires":[],"size":17276,"version":"0.18.4","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79a7b300fa6aa1b54dea39df9d107c2ba984c99d75c9c49b6073a8e3bdb1a472"},"ros-humble-ros2action-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720418957,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"66249f62bcb15c0cd790a959f9378abc","name":"ros-humble-ros2action","requires":[],"size":26224,"version":"0.18.5","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dfc84bb3b92f4a80d718e83a1bb1efd67689b68b67bd539c0e7619f6f5df367e"},"ros-humble-kinematics-interface-kdl-0.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-kdl-parser","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2-eigen-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696974423349,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"fdfe3103cbe1f10e34e413fbaf2d6d09","name":"ros-humble-kinematics-interface-kdl","requires":[],"size":69869,"version":"0.1.0","binstar":{"package_id":"6392b3f0d9a997aae73f5f99","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3d38da4d169e4f53bc6ceaa0fb15f7fbc64bbcbc5ba60266e15d39afec63f71"},"ros-humble-rqt-plot-1.1.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558853139,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"45c03815f9a1a21ee763ffee7330a8ca","name":"ros-humble-rqt-plot","requires":[],"size":45215,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9184303ae6b6b1b2ac41a93197a4b918446af2ba0932eda4f8a5d69747fc6215"},"ros-humble-rqt-plot-1.1.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720427041,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad633e08600e5bd21946c83fb0f52225","name":"ros-humble-rqt-plot","requires":[],"size":76140,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a83d08bf482e354eeec8ca3df28c15e0c1cf7576ed43d5047f413eb4de6a2ba"},"ros-humble-rqt-topic-1.5.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558793575,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2eb77292727b7f8dfbe9642ee9384ba8","name":"ros-humble-rqt-topic","requires":[],"size":22960,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4bf9f788df2cd985b4bbec827313331e49d14677699f57776e4d1e3b6953960"},"ros-humble-rqt-topic-1.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720425771,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bfe6a96d4f656923f9dff4eee2c5fbc9","name":"ros-humble-rqt-topic","requires":[],"size":36525,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d1f367b128fe47e4e418ce88e33c8722c2982e7520684c538edcecfcb87e031"},"ros-humble-camera-calibration-3.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558902328,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d1b731085cbe20889c24a1efa688a7e8","name":"ros-humble-camera-calibration","requires":[],"size":54868,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b83d0b2afa18cc813c5b36fffa91d04a4b1bf6ff918f30c6706a9cf021060a0"},"ros-humble-camera-calibration-3.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720475664,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9a064aaecc3c9536e3a8eb19ca1f8b3c","name":"ros-humble-camera-calibration","requires":[],"size":98197,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3ae3a2396260f7a11c14f52b457658a3c0eedfebcc771e07434a9f1eef4f07d"},"ros-humble-teleop-twist-joy-2.4.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565985821,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f9eaa73f974a989c8bb1cad9affdd41b","name":"ros-humble-teleop-twist-joy","requires":[],"size":173293,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0148c74d6c62445b7c3c3d83e5b79d4ea40870414eb97e6daa1d8da0ab2292c7"},"ros-humble-teleop-twist-joy-2.4.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720490744,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a45badf182c8297d471ca0c89f57c28b","name":"ros-humble-teleop-twist-joy","requires":[],"size":176355,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b862347fbe38feb9854e63d95e8a5d8feb7c42765dd192ca0c64ffadab8e2fe9"},"ros-humble-control-toolbox-2.1.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558864926,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fcb699344953d2d14ebef195ec59f78d","name":"ros-humble-control-toolbox","requires":[],"size":83478,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"319f2505fc7afded731f88b3bd30870373839aa75530d1fc0a1dbc2f23f716a1"},"ros-humble-control-toolbox-2.1.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720441302,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9e885278a311298fd95dfa5889e664d1","name":"ros-humble-control-toolbox","requires":[],"size":85549,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12bcc9afcf202f992a3ea13e5f41deedae919d17a9c8dfab71d4f709bffe5605"},"ros-humble-generate-parameter-library-0.3.0-py310hc285a83_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hc285a83_2","timestamp":1670558757800,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54ea58e54955877c20c5db771bc0ad02","name":"ros-humble-generate-parameter-library","requires":[],"size":11503,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01946b79a3704835c2d06f9b4bc0862923e281b64c5b30e5cec43addb3c83638"},"ros-humble-generate-parameter-library-0.3.0-py310h0fc90e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0fc90e0_3","timestamp":1675720409048,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f6d030aa939a34c936e2a3d0724f63c0","name":"ros-humble-generate-parameter-library","requires":[],"size":13794,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ec9df6a6d6494fc675b7df673d4d6d84b5795735e97e8d8a8d13c65ee65347a"},"ros-humble-moveit-configs-utils-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558791016,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9614f2d608bcee6dea5e709cf73a9e55","name":"ros-humble-moveit-configs-utils","requires":[],"size":23541,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f740f80e0bb93d6d3d266914d2a9804321946524f3b6abfc3ffd15497d0e4a7b"},"ros-humble-moveit-configs-utils-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720419674,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b8dde1cd97546cff4911badc1f1b9067","name":"ros-humble-moveit-configs-utils","requires":[],"size":34454,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcd9ec568a97056d115301ea88b39966db57bb4de1d45bdaf3d1e8d613c13912"},"ros-humble-ros2interface-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558784916,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cec9d250162df631a2fca9d70fb1eca4","name":"ros-humble-ros2interface","requires":[],"size":17557,"version":"0.18.4","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee656101db47dee5ed53aab9e7df6e2b1f5013ce2f1dcd48ee14486d34c66098"},"ros-humble-ros2interface-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720410282,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e07d23fa95f0dd3392bcdb6e9a4caa2f","name":"ros-humble-ros2interface","requires":[],"size":26357,"version":"0.18.5","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc93a0c2ed925a23159e7111a86469ec40cdce40c779cf37fa8095074987f4cf"},"ros-humble-image-transport-3.1.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558884067,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"efb4a5a3b17493e9646215d7dbb747ee","name":"ros-humble-image-transport","requires":[],"size":699875,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f408b4b90d0e23e36046f8e4a03528d79695a90ecc9941b541cc0d5b38d5446e"},"ros-humble-image-transport-3.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720467649,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"65095422b4c06dd2a54f2f7999044044","name":"ros-humble-image-transport","requires":[],"size":704841,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83513158c61fbfe0ba04506efbbdae4c91af714854adbcaafd84db796b754c3a"},"ros-humble-tf2-ros-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558881816,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c77c34bda57ccdf3ac1fd840cd428b10","name":"ros-humble-tf2-ros","requires":[],"size":503344,"version":"0.25.1","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2b6ed47f39d1882c304896c7bd54dfa655ad52a5482a4b9b9092e99b7af3561"},"ros-humble-tf2-ros-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720468878,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3a52ada77e2ed20bc62aca0b36071992","name":"ros-humble-tf2-ros","requires":[],"size":502534,"version":"0.25.2","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffece6946275895aeeef8c35022c813b1d5b1050a2fd011f2cfca3950cc65c29"},"ros-humble-nav2-msgs-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670558993586,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1d553cc4e5d118ed274d8379e88b2082","name":"ros-humble-nav2-msgs","requires":[],"size":894306,"version":"1.1.3","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc25c564f95ba2313721b94962133cac0c1a03642a5c1d2e21242b3bbf32e976"},"ros-humble-nav2-msgs-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720538536,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aca8b1d14dc7fd7d12a23677bcc0394d","name":"ros-humble-nav2-msgs","requires":[],"size":983061,"version":"1.1.5","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"489e0a947f467d1d7ce9ee8e2637950c4e0de1b1adffa80198ec5f89721fbfde"},"ros-humble-ros2topic-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558941707,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8a3f8876965b3c27b04539d5c089a38e","name":"ros-humble-ros2topic","requires":[],"size":38446,"version":"0.18.4","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c76eae239cc1709bd5981727d58107423953f3c7dbdceb0a35d17ef6ef3c3a9e"},"ros-humble-ros2topic-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720410262,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b44d027449c73e2b1b4fe21de974000","name":"ros-humble-ros2topic","requires":[],"size":63239,"version":"0.18.5","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbf9cc0172d68c948ad423a4c60cddfc7e8cc8ed6094c3472269ad5803b44185"},"ros-humble-rosbag2-storage-default-plugins-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670559077030,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5bd1b2b199ebb91a8acf1f6658e1e061","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":93127,"version":"0.15.3","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c4bd210631c3f0f9fd49b6ea65faa6faa5e4139d324e5553d901862669c398f"},"ros-humble-rosbag2-storage-default-plugins-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720426590,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8c12ee65127b54d8063a19e13d9e9860","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":98724,"version":"0.15.4","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddbf73da68b49efc8067093857410c755d59489958adc73dd3999ab7a7696933"},"ros-humble-nav2-voxel-grid-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558828114,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cad23dc9946a988c6c7dd6d65218ebae","name":"ros-humble-nav2-voxel-grid","requires":[],"size":27283,"version":"1.1.3","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a689a01c0695873a359960e4df37c1e45db13eb87ad4b13abdb2e481cd0ece8b"},"ros-humble-nav2-voxel-grid-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720436751,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b8c1fc69292942a3436093e8ccca5a0d","name":"ros-humble-nav2-voxel-grid","requires":[],"size":29708,"version":"1.1.5","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c37ce26ded2ec26ada58c16106df19b52da84be61bc68fa59f0c1f6ed49fee8b"},"ros-humble-composition-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558856724,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"24564031aa043e70f0dba5351792bf67","name":"ros-humble-composition","requires":[],"size":365801,"version":"0.20.2","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68a502b6a4720e83336dc675a74083f5028a19e7cdaeac8343b62a417cb354ec"},"ros-humble-composition-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720502761,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"edb363265a56773902d17abea1a0dd5d","name":"ros-humble-composition","requires":[],"size":381855,"version":"0.20.3","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce6cf0c9c726a348bfd835dd0085df826a871a1f8e14a5aed33d66de572e03a1"},"ros-humble-logging-demo-0.20.2-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h010ba66_2","timestamp":1670558837899,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"32631dc4b680a1cbcc13473f395116ef","name":"ros-humble-logging-demo","requires":[],"size":159856,"version":"0.20.2","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4eb9d51fd0ac8f5d2209b7425317000a0939364442ad2dcf2d66a376b49beee4"},"ros-humble-logging-demo-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720482190,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"58b3c047a7be524297a9b1801f6d1765","name":"ros-humble-logging-demo","requires":[],"size":167309,"version":"0.20.3","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc29fbc749f26c6033bd0b30c72a23079b8b16ce66827d8bf4573d26296d2e76"},"ros-humble-image-tools-0.20.2-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670559037162,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c48386b2bc07f18f19c5d9fdad61e89d","name":"ros-humble-image-tools","requires":[],"size":266226,"version":"0.20.2","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1aa0be4fa13ee1830e2d03df053c5d9ece88ad28809564c8532c781ea75aa2b1"},"ros-humble-image-tools-0.20.3-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675720556333,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5075bc19a47a6eafc58e793295638a0","name":"ros-humble-image-tools","requires":[],"size":274231,"version":"0.20.3","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b33ce5003da6114a0a01d74d7f885c9fe1253e8fd7a30fe2fea20233d0894ef3"},"ros-humble-demo-nodes-cpp-native-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670558813289,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e94a711805d9282028ff40c0000edfd9","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":90441,"version":"0.20.2","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3683208072e5748b8b3c6cb838eae0aaf77738b4a930c2b1c499a2fd8f33e4d8"},"ros-humble-demo-nodes-cpp-native-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720475465,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0e6ca481708b70eb57ca951967c15513","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":92902,"version":"0.20.3","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f44efee7f461f8d3a671d9051880cf4c0634f062da61dcd5b241c1da9860d5d8"},"ros-humble-demo-nodes-cpp-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670559104098,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"85530941e299797bc0b9f15863e541ac","name":"ros-humble-demo-nodes-cpp","requires":[],"size":1089022,"version":"0.20.2","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c71a8d01f7d40c3463866bcb3a6d51fdc8b2796c8149432fd83016dafc7a1c5"},"ros-humble-demo-nodes-cpp-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720530643,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"45350ffc6bab5b7e2a5444e96db84f31","name":"ros-humble-demo-nodes-cpp","requires":[],"size":1103130,"version":"0.20.3","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68c2609c47b51202ed270259c0803c2b0c16c9a70764fa53618e9af2bfe65387"},"ros-humble-rosbridge-library-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pymongo","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686905044248,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74deaac0a3b8141ac411738ad3d912d6","name":"ros-humble-rosbridge-library","requires":[],"size":117545,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7a1362d7af6b42e2b7ea4e1f7cb834039394768dee85c12cfbc7535922417c0"},"ros-humble-ros2run-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566000709,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2be13b017eff4500dc30ac4f18fda003","name":"ros-humble-ros2run","requires":[],"size":11684,"version":"0.18.4","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4a2a4fa1d1b0f96ad0128c8ff30d7b3316842071c6b0de3fee286ffc467aa3c"},"ros-humble-ros2run-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720939398,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e76d62657102a7532e145920fdd16694","name":"ros-humble-ros2run","requires":[],"size":16637,"version":"0.18.5","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c91cc29a2688449783541cd103379b225a0e82d9554417558c1ce62d87eeba02"},"ros-humble-tf2-eigen-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565981685,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ccdecf5306f8060311507d3a2ddcf2db","name":"ros-humble-tf2-eigen","requires":[],"size":16145,"version":"0.25.1","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a7f0e457117e98e49c0e5d2d13a23ddfc2a7c30e16fd95aacee3b244995ff3d"},"ros-humble-tf2-eigen-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720945175,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e6ca5dbf4066e619d529499ed22679f2","name":"ros-humble-tf2-eigen","requires":[],"size":18667,"version":"0.25.2","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fef87f62dd79c85f133d25da50c55cf8ed078777753faa6c007492edbe6f32e"},"ros-humble-robot-state-publisher-3.0.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565969429,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aa9f43bd9b3fd7aea8e196438c3e94c9","name":"ros-humble-robot-state-publisher","requires":[],"size":245303,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84e7178f5273aea53ca6b9878365898e347f78d045d8322f6a45debd4dd542ff"},"ros-humble-robot-state-publisher-3.0.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721008689,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6db2b9946672f8c4fd97a602bc4d9140","name":"ros-humble-robot-state-publisher","requires":[],"size":251585,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffa096831b6feaa1f191562827b473e0950c9426ccdcc726f62604cbda683a2f"},"ros-humble-rosbag2-cpp-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565943813,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a067596a055bed1f067ff33cf4d18cce","name":"ros-humble-rosbag2-cpp","requires":[],"size":268585,"version":"0.15.3","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52af53fd6d9b572a0359e75f28860fdc8544876f91a48fd2b3d0494677687433"},"ros-humble-rosbag2-cpp-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720978462,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41272b8c5c6dde2b661be3aec4cd5b7c","name":"ros-humble-rosbag2-cpp","requires":[],"size":273597,"version":"0.15.4","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"505a277eeff144879e74e8e55d63c5fda9b2405522c1391c276fd74f46510008"},"ros-humble-tf2-kdl-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565925331,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1e36863e025da3d81e0b2fb785f98eb2","name":"ros-humble-tf2-kdl","requires":[],"size":17897,"version":"0.25.1","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02ea96fb1f03b2780b2ae385d1913c9ee3ff7bc7b537c07bca59814fc835bb40"},"ros-humble-tf2-kdl-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720948889,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"34d57494a1fa06b0d1a606e3d9b8834c","name":"ros-humble-tf2-kdl","requires":[],"size":21792,"version":"0.25.2","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbb4be613fe10b6dca7082ff5d4eef7621473b07e36c95b0e06b1f0679548ca1"},"ros-humble-tf2-geometry-msgs-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565911039,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"db465d539de8d28ab38f0d4ce489406e","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":24397,"version":"0.25.1","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ae4ef44545c3ee9975a6393e3040be5fde4b78b217c2ed672c3964e7c3856bf"},"ros-humble-tf2-geometry-msgs-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720954648,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9b101e90b42be712c52a0722064bdb13","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":31459,"version":"0.25.2","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06e714c27295619ee271362dbfa40c1c58496e47296cf9d213bbce2284b984c0"},"ros-humble-ros-testing-0.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565952661,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5b81af136b6c77460449bd46d06711ac","name":"ros-humble-ros-testing","requires":[],"size":10921,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa509351cde7f80621662e0850ca758fd3996bc531f83ff9e5f94e302bf66ea7"},"ros-humble-ros-testing-0.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720953712,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"71590e6bac1151ea83238c2ce2a1ac2c","name":"ros-humble-ros-testing","requires":[],"size":13088,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"408727766ae03282e16d8f6f6fceac721b30b45c09edd3c61eb3e7ea2d04e8d5"},"ros-humble-tf2-sensor-msgs-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566023904,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e4c774549650e4ab0588a6b76e64774a","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":12951,"version":"0.25.1","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6966256305524012b28eb127b3aa2a466f81c948fc7cce4a20be751f139f0665"},"ros-humble-tf2-sensor-msgs-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720952536,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7047116d90da535b2c587573f80d3d17","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":15422,"version":"0.25.2","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83afdda9e55b3199c4f743b6ccc6df31d99f76029a2bbcf9bb79a8b3fdf127c0"},"ros-humble-joint-state-publisher-2.3.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565964435,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"13ff963962356ac0d5539d35cd09088f","name":"ros-humble-joint-state-publisher","requires":[],"size":17519,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ceb4d0b3165e5b2a8827b079ae860172a80c9888a09a1bb1b556a96506c786cd"},"ros-humble-joint-state-publisher-2.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720930983,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"665eb9b7f96f8997628ce1935c72fd7e","name":"ros-humble-joint-state-publisher","requires":[],"size":26878,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04e75e97ff0b333275911da1f3217ea7895626aea0425aad8b9980fbfc1bcce3"},"ros-humble-ros2param-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565909747,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"38c67c9623413b71effc9788637f27b3","name":"ros-humble-ros2param","requires":[],"size":24211,"version":"0.18.4","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f51e0dc5ea73e3fa5f06d23ffa068e43c0a97c565a2acc2f6f6c89ccbe2e9c2c"},"ros-humble-ros2param-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720941348,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"815ddf07e83017e4be3f69975a07a282","name":"ros-humble-ros2param","requires":[],"size":38624,"version":"0.18.5","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1f13183f5cf246d6f7c86e02688552699c1bdb943c779f4c94391782f604d5b"},"ros-humble-nav2-simple-commander-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565914269,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"87c93f8470891561ac472fbf5b3a380c","name":"ros-humble-nav2-simple-commander","requires":[],"size":42057,"version":"1.1.3","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1500ddd27e22d828b9d6f491e4c36441a88161e66e094268dc722c29182a4f48"},"ros-humble-nav2-simple-commander-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720947168,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e772b225e08d7df97e50b7553ccda243","name":"ros-humble-nav2-simple-commander","requires":[],"size":61016,"version":"1.1.5","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d83163e641fcf3d02e3a5086ea21854c8ab28c83273f79135a39b088e4dd225e"},"ros-humble-theora-image-transport-2.5.0-py310ha09f4f8_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_2","timestamp":1670569603760,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"65989a4a0169eedd44a749d5d61bdd69","name":"ros-humble-theora-image-transport","requires":[],"size":346006,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4d00de350c925064d21c4ae5e269cc02aeb0c8235c868688b230c1d300fdbb4"},"ros-humble-theora-image-transport-2.5.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675721089245,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"227ca1ad6169d42b4e84b1b0d91f00a6","name":"ros-humble-theora-image-transport","requires":[],"size":353754,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c91131117dd0519c43c20987787e8ec4969c7fe14c30f882dc6dade09358d38"},"ros-humble-ros2launch-0.19.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565921288,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d5f14bd1e20874a2240f0db92a1c3303","name":"ros-humble-ros2launch","requires":[],"size":18112,"version":"0.19.3","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7866b2f69b55448d0fbf8d4539fbe9906e9699c25ba6eeab916db21e7361d3e1"},"ros-humble-ros2launch-0.19.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720935779,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"71fa199bae2544f020883dcca72f218d","name":"ros-humble-ros2launch","requires":[],"size":27056,"version":"0.19.4","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e82f03e9deeaddbc9984459dddbe4230e46745434fd205707a9474a8e8aac301"},"ros-humble-ros2lifecycle-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565973084,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"459bc7f51c34cd5f4f7a7b00bc78b050","name":"ros-humble-ros2lifecycle","requires":[],"size":16983,"version":"0.18.4","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09087710e422e7f06d1cc1d9168837c0b512dfb9f3ff2b2470034369a762f124"},"ros-humble-ros2lifecycle-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720945911,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8f8140d54f7d8fcf6e2ae255b8969207","name":"ros-humble-ros2lifecycle","requires":[],"size":25672,"version":"0.18.5","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a72829fc4f0dccc367e9b947f5c5fb2baa12b37ba5688b441195a46ae3f8949"},"ros-humble-compressed-image-transport-2.5.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566038540,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"efc81780429969909e491386941f9baa","name":"ros-humble-compressed-image-transport","requires":[],"size":195829,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e571bbc043d77e8c1268b6455173d24549a60533b34eb998c1c2bba41169a0d7"},"ros-humble-compressed-image-transport-2.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721057966,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"baa6248b37bfb63e34c87fb238c3191a","name":"ros-humble-compressed-image-transport","requires":[],"size":199687,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32c0b44f10c4916ab3c2eaa117b2c632b4cf528c8f09f8be477ca26fe8550d64"},"ros-humble-rqt-reconfigure-1.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565933132,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"195da5000aa592c381e271e84afb588f","name":"ros-humble-rqt-reconfigure","requires":[],"size":50817,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7b1d678333afe8e47a038a345591619be3e1ab1f48d45ba1970927d13fcac57"},"ros-humble-rqt-reconfigure-1.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720956554,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f1f458fe4ecec149cdb61ff007e00af1","name":"ros-humble-rqt-reconfigure","requires":[],"size":79771,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"789a9f71a025420836f51ad53dcb4e5e5eb8776e8e2c52227312132882fcd770"},"ros-humble-image-publisher-3.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567061245,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"46c3b37db914958acb7012ce20db23e7","name":"ros-humble-image-publisher","requires":[],"size":116643,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"925fb59dff1de83163609c8531e6523f25bf5597c736b3c593eb6bf56be433f0"},"ros-humble-image-publisher-3.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721056486,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac23a23f6e30657abc59106e594e289d","name":"ros-humble-image-publisher","requires":[],"size":121107,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f2ce0843de2904ca2f6049ba253ab6901c7ef61e76c862f7266b0cff3be3abf"},"ros-humble-ros-gz-image-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674556657630,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"126a70c557ae765b59428f2577e8fa97","name":"ros-humble-ros-gz-image","requires":[],"size":78776,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32c9e4e4b9fde409cf767c1f7c9748c9c1351cdd602dba462ba16964bc3757de"},"ros-humble-ros-gz-image-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721017988,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8ba68524200f3f5c401bcfbdf4f0cef5","name":"ros-humble-ros-gz-image","requires":[],"size":78818,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f71b6d0bac51f63836cb77f0650e8b779fa8ed7eb712a3c2f66c336ea649e9da"},"ros-humble-image-view-3.0.0-py310h5d61e26_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h5d61e26_2","timestamp":1670566250110,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3dfa7079ffcb234efea908a9f819c188","name":"ros-humble-image-view","requires":[],"size":391346,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6abafbfc3fca499ad78a11b57be5af80a9e74a783d24ddeb3bb6aa194d428836"},"ros-humble-image-view-3.0.0-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h405a52e_3","timestamp":1675721104712,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d95b9cb9f3b267b7b3f648570cd76c74","name":"ros-humble-image-view","requires":[],"size":396467,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5643ffd8edba28f41d29e6009f3998ac40c9a3bb1d34280090496ecb35dbf71"},"ros-humble-rqt-image-view-1.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670566102955,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"990c116c2c90f4ff0e76b019d051af6f","name":"ros-humble-rqt-image-view","requires":[],"size":212569,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ee1671505131d661e0e87f8c920375ff300f6e88a8034c5ab55a9b3ccd84113"},"ros-humble-rqt-image-view-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675721061955,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a6e98d7e411ccff2142c054571717294","name":"ros-humble-rqt-image-view","requires":[],"size":217950,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"587649d4b2f33a3d17b4fc126c86799c8def10a71b4881b92bccd801df345092"},"ros-humble-compressed-depth-image-transport-2.5.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566171072,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"96ffa2f5b428d8b6ba8bd24c5900e198","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":171388,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc404e2a14cedb767c50ae59c5812c7fe02dff93e1267b5e109327b9aa816b54"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721052081,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"05d9963d02976ff1c967a6e2fc80603a","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":174998,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2239a6aa1c1af5b7607dd046e13a0c8970a86a96cb4808befb52c77f8218d14"},"ros-humble-image-proc-3.0.0-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670566117434,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"daf5bd68f7f6d47e37b1eea28810c0c5","name":"ros-humble-image-proc","requires":[],"size":109597,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94099bb1a27045b187b59a2b92f89746a6cb1f9656652221e9a4d1111989762b"},"ros-humble-image-proc-3.0.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675721059144,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dbf6e88dafe028ef57feca359d7af344","name":"ros-humble-image-proc","requires":[],"size":114249,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77af1f54fc1506c997e584648ee136648385c41ef053aa4991815d702873e3b4"},"ros-humble-tf2-bullet-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565914171,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a38ea4513f16e97a4c183b245cbd9425","name":"ros-humble-tf2-bullet","requires":[],"size":13456,"version":"0.25.1","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40314c4c30a1ce61c6d4e59a5aade797555ceaaf050e91ab51e1f832a342a1c2"},"ros-humble-tf2-bullet-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720974894,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"200af01414c94e93ffdc60955c137a5d","name":"ros-humble-tf2-bullet","requires":[],"size":16091,"version":"0.25.2","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97fe55d494de2575af76981d873adaafcef603b12487ec3a8465638db9cc0999"},"ros-humble-rqt-msg-1.2.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670565915806,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4cb73e018837d2a63ce9706e20d6be84","name":"ros-humble-rqt-msg","requires":[],"size":18148,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3937c988450b9a9e9683790fb9eaa66cd3c91ba37118dd624100eac3d1ff87d7"},"ros-humble-rqt-msg-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720953172,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"707605fce72ef512985a29201c4dfc71","name":"ros-humble-rqt-msg","requires":[],"size":26546,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0c732b2424ecd3a68c8935ed7b532783196c9f38236a59cbd767cbe761d8c0f"},"ros-humble-ros-ign-bridge-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674556618210,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e90c93a803bd8c1dcb5ec2e1b41cf74a","name":"ros-humble-ros-ign-bridge","requires":[],"size":18458,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67728e5cbe47b9007b36af1ddd2e96ab4fb6b81daa167b97bb98ff28e893ba99"},"ros-humble-ros-ign-bridge-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720444500,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a47f85264b72c043ebe6cbcc98129ae8","name":"ros-humble-ros-ign-bridge","requires":[],"size":18475,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c18d6feedda65d7bae9af8dcfa81d39d170fae4a1ab9d2b7e3998211a705c80"},"ros-humble-warehouse-ros-2.0.4-py310h1cac7d4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h1cac7d4_2","timestamp":1670567082770,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"58738052d0bffe869e9e31b35225e509","name":"ros-humble-warehouse-ros","requires":[],"size":167369,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d3a70eacb354814bddf608acf9753be1589d81bd90f324f63d15305723da6c2"},"ros-humble-warehouse-ros-2.0.4-py310h5fad571_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5fad571_3","timestamp":1675888172583,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dfd9827d39c477aa652b604e86e96b27","name":"ros-humble-warehouse-ros","requires":[],"size":169935,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af68d65005ffa42ea2b7889bf8eaa81a2b5f199524f5246bf49e2d8209f0eef4"},"ros-humble-ros2component-0.18.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567012796,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49965e366d8fd6ee4577b1e27c5cff49","name":"ros-humble-ros2component","requires":[],"size":22064,"version":"0.18.4","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76ea63e519f8bccfd7e9e9c3eba711f9b244962ae8282301ba071b2c20f09e24"},"ros-humble-ros2component-0.18.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721491154,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"37ac3d8abf0050d400a30211a6d076de","name":"ros-humble-ros2component","requires":[],"size":34695,"version":"0.18.5","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2059f3ccd18e5ec64d55e0b1bbe5da7d34bc375c29719a3f3736ae5ef0b2810b"},"ros-humble-interactive-markers-2.3.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567204774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a73e3c568fc7dd2aba6996330fe22b62","name":"ros-humble-interactive-markers","requires":[],"size":295662,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c98e338de119cb8d162da1b06d246325d9889182b958d84fdded1da9fcf384ec"},"ros-humble-interactive-markers-2.3.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721550122,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fc3dafb57705cb272e2fa3c877f12150","name":"ros-humble-interactive-markers","requires":[],"size":309378,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d336934e8e254aa97de26b33c3ffaee7c2782f2ed4ef3c6d011e0b0af483853e"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566965633,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b9a9003f6a6581d14fc6fbf552c499be","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":20401,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"306b50bb96c2bae3015c5b13ea0818d6aa0611920f7cb2a25d1b5ca694199360"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721489217,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"637aba5a3fa567f7f3b4cab76a6b7607","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":23204,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd9df250c240fcf62f516f475a3360550ff19f35f3c405dd56eb5cb86489f64e"},"ros-humble-sros2-0.10.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cryptography","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566952605,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"97b13df7206edd9dc310ce44fecf5b62","name":"ros-humble-sros2","requires":[],"size":39674,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18755eb905c69302147b52366f439e488002fa4882227bcb56457e8b51754f0a"},"ros-humble-sros2-0.10.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["cryptography","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721488442,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac371c11faa708f715a007356c82d2a0","name":"ros-humble-sros2","requires":[],"size":60271,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcb79629cc83268ab068e893adbd6f3ee5cc2a90e1309fa795fdf6f6775832ea"},"ros-humble-rqt-srv-1.0.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566965204,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"12a5c30c0e3281b4b24c6aaf4d8f33ea","name":"ros-humble-rqt-srv","requires":[],"size":10251,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fc89309f81c154ac3f586ec2c07593beb04312eca300cc8f6ef3ea2f8277c5c"},"ros-humble-rqt-srv-1.0.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721512293,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"774d71c4b51a4fb18d1feced0f2222b6","name":"ros-humble-rqt-srv","requires":[],"size":13705,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d73c0af10420db04e287c00e5efe1a7688567320ecf0b55efb5ac2b1663b33c"},"ros-humble-rqt-action-2.0.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567009074,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dd5fa6b238f2f587463fe12776b7208f","name":"ros-humble-rqt-action","requires":[],"size":10312,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02e34a9d77c4a3a44dbe3d6dc008c0e30044249da55886739c54098dc1c1a89e"},"ros-humble-rqt-action-2.0.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721509431,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9448b1f1ae26992894d1b3f99decd67d","name":"ros-humble-rqt-action","requires":[],"size":13673,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecfad0c1babbde0e8f7bb7e3daac0292e516802cb70af052df867db95af5f9bd"},"ros-humble-rosbag2-storage-mcap-0.6.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-mcap-vendor","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567010752,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cb533ed7dd3fa0dcc0132635fc5f03e6","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":132612,"version":"0.6.0","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8776b1b6f04d65853600c375ba66ad28a0a11d929606dd64a74e1d0bc752f73e"},"ros-humble-rosbag2-storage-mcap-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-mcap-vendor","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720465196,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62b7e1073344f12dc3c5cdc6a9434ff8","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":135260,"version":"0.15.4","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe008246438a92ca6936611556809d9c53e41296aae66832603b0242b4c5951f"},"ros-humble-depth-image-proc-3.0.0-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670567333887,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4db50eeec1bb179be947993431ccc750","name":"ros-humble-depth-image-proc","requires":[],"size":448596,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5101d23c7bfd455f50410dd53bf28f6cf9c9ab98d117c65a42a0d2e60ca441b8"},"ros-humble-depth-image-proc-3.0.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675721654775,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"83346f7d74167c4b249349e055016008","name":"ros-humble-depth-image-proc","requires":[],"size":449984,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e20ebb2c466f7e82add1debb34f33ac425a73c87cbadf8b961525ae95694db62"},"ros-humble-image-rotate-3.0.0-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h96c32a5_2","timestamp":1670567281838,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ef45b9bb81a513a73fdd02c8e1b77362","name":"ros-humble-image-rotate","requires":[],"size":84481,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32b2aed4037e11c4fda7d1ec7c1a06ec4da27892b0884bf0aebf449aed1067f7"},"ros-humble-image-rotate-3.0.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310ha09f4f8_3","timestamp":1675721626580,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7065582bb45c27d10d4a8da50f94cbca","name":"ros-humble-image-rotate","requires":[],"size":88959,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b3a569a3f65b22757f86f4fa1c52aadd0097a56d0cf82f249f19e9c71a3b345"},"ros-humble-stereo-image-proc-3.0.0-py310h96c32a5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h96c32a5_2","timestamp":1670567128987,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"821167923053085a9e7d08b5cfc8d354","name":"ros-humble-stereo-image-proc","requires":[],"size":399853,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87a34be0a05f87376abcf95eccc9e9f5e2a4f07af27a7855b8fd991a6c179855"},"ros-humble-stereo-image-proc-3.0.0-py310ha09f4f8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310ha09f4f8_3","timestamp":1675721661995,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ce94f4de4c415f87a0b0b71c7f6ac604","name":"ros-humble-stereo-image-proc","requires":[],"size":413448,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c917b238e4c78af411abdefd3bd5ab0728579e0f10ac8b60f5e351eb3f1a66f"},"ros-humble-dummy-robot-bringup-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567064932,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d4e70f822aabc44a58f4428edd67964b","name":"ros-humble-dummy-robot-bringup","requires":[],"size":13256,"version":"0.20.2","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f4e0f78327e54b7a8d95a956b930726eaa2502250e2570f75b2e42ab0807d4d"},"ros-humble-dummy-robot-bringup-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721510025,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"227a1ba356378b12e232a52db91eb37b","name":"ros-humble-dummy-robot-bringup","requires":[],"size":16009,"version":"0.20.3","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4221640f0a040ede812c1b78885abfeb7334f7d7513656e00d8d78ebc2214c7a"},"ros-humble-image-common-3.1.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566938869,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b7ebec6d4581784b04f7728da06d1fd4","name":"ros-humble-image-common","requires":[],"size":9432,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"037adc0e07312113ead4067757cc1189a16b3bb4188aec6d7c53cc3044f46021"},"ros-humble-image-common-3.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675720953828,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af85aaf47370f5b83dc3621bd1312c9b","name":"ros-humble-image-common","requires":[],"size":11639,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71ed0ee6cf434008f40ae6fed34dd4f970e684517957d66528885783c6c13607"},"ros-humble-pendulum-control-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pendulum-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rttest","ros-humble-tlsf-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567059758,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74efa8757b53be2ed7bf46823eaf72f0","name":"ros-humble-pendulum-control","requires":[],"size":364710,"version":"0.20.2","binstar":{"package_id":"6392d4902b3749bdb87ef660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69971bd83f5df701ce83da439c66ebbbf99967c315bb5a56ccf3f87f2763be1f"},"ros-humble-pendulum-control-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pendulum-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rttest","ros-humble-tlsf-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721600649,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9e4943928c1e9ad8e217b5fae8a3969a","name":"ros-humble-pendulum-control","requires":[],"size":365160,"version":"0.20.3","binstar":{"package_id":"6392d4902b3749bdb87ef660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32a7132a4f0a6f648172dd545e57847f07e90f5e76d45ed10f70d09dc7543158"},"ros-humble-lifecycle-0.20.2-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567011822,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c9fa666c17e13ee8d5ebcd6f4203b787","name":"ros-humble-lifecycle","requires":[],"size":247972,"version":"0.20.2","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbca38c7c6162c0cbd1563badca177fe06ae387932b0efddab5e6421a391b49e"},"ros-humble-lifecycle-0.20.3-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721572167,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c91454bf6ac6be4c59c9bac2b2ff14c0","name":"ros-humble-lifecycle","requires":[],"size":251185,"version":"0.20.3","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fdf9fdeb5930c3576179578d51e8b8139e357df6a848bf86aacf51f2f719fad"},"ros-humble-laser-filters-2.0.5-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569531206,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f0a514aa0923476bf8bd5aa15cc97320","name":"ros-humble-laser-filters","requires":[],"size":971233,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a08d2c67c824fc9b34b7b724e49f47d0fe29a6fc8963dd90c68ddfb2256732e"},"ros-humble-laser-filters-2.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721063522,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"36f9147b9ece3e7a59566538fd16a7dc","name":"ros-humble-laser-filters","requires":[],"size":968409,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d69029624723f3e57927b332b705d713a6bc2cab60e3967fea89bcadf6bd680"},"ros-humble-robot-localization-3.5.0-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","eigen","geographiclib-cpp >=2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h405a52e_3","timestamp":1684266368134,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4a4a080685e7b5d658f969916beb0386","name":"ros-humble-robot-localization","requires":[],"size":1071204,"version":"3.5.0","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30cfb7a2c39d6d4a55eb6cf58b4353334568ba228baa42e28dbfb5bb819d16cb"},"ros-humble-joint-state-publisher-gui-2.3.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567141211,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c241219afb36914c92dd486bad09a5af","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":17801,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25bd2ebf4fe8093bbce15bbf990560fdd127b6af5ff6e92f62f436e47297c201"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721499052,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d3ac73a455a42f0391933803d68c49fa","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":27153,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d96311e27769663cf75070526828b8b843b3756ab22cccdda65d9188667727f"},"ros-humble-nav2-util-1.1.3-py310h5d61e26_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h5d61e26_2","timestamp":1670567057448,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d95ea2a98b49a9e5e145fdfcc055940","name":"ros-humble-nav2-util","requires":[],"size":223056,"version":"1.1.3","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c529158ef3bfaa87be1913d5b373331c8f42c5610089bcaa7d54cb87fd409bd5"},"ros-humble-nav2-util-1.1.5-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h405a52e_3","timestamp":1675721583115,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4c1a31d1d6e154453a30d3604616e583","name":"ros-humble-nav2-util","requires":[],"size":225611,"version":"1.1.5","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8e4b74ed12a244c1587a934118b735899c4c3ca20f8280fa9f7c8d44dce2dc3"},"ros-humble-image-transport-plugins-2.5.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-compressed-depth-image-transport","ros-humble-compressed-image-transport","ros-humble-ros-workspace","ros-humble-theora-image-transport","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670639300850,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"db9d064ff09bf127facfd462822d3479","name":"ros-humble-image-transport-plugins","requires":[],"size":12551,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54f73aa5238fde66c60fc50108bc5a64ad883483ab222f424bb5ada5588edf7f"},"ros-humble-image-transport-plugins-2.5.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-compressed-depth-image-transport","ros-humble-compressed-image-transport","ros-humble-ros-workspace","ros-humble-theora-image-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721512233,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dbaa2cf48b9c27ae590debe158dd7488","name":"ros-humble-image-transport-plugins","requires":[],"size":12752,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a832f12062b7925067a39faa1e25a39a120a6d37cc04fe5e2376555dc4a3434"},"ros-humble-pcl-ros-2.4.0-py310haa0a74f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310haa0a74f_2","timestamp":1670567121743,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ea6a1436c9bb3b8ee04b2c1200dc9b89","name":"ros-humble-pcl-ros","requires":[],"size":80143,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caa80872be47d89579da42d00d187f66c13862cd7369a89864e0302cd3142591"},"ros-humble-pcl-ros-2.4.0-py310h8ea06c7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h8ea06c7_3","timestamp":1675721656630,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"810466bb7f9e0f1008dcc1a285896c7d","name":"ros-humble-pcl-ros","requires":[],"size":84503,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a7f3894431798108970a531b635ec905329cec2bc5dc15044c7324e78c5f639"},"ros-humble-geometry2-0.25.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567200734,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a0b7af6b611f9c9c2818fc482c80fc80","name":"ros-humble-geometry2","requires":[],"size":9412,"version":"0.25.1","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7686fd29b93d4638bc64e940ec766a706d9d32a2705a27e1d0a93dcc5e9f8c4d"},"ros-humble-geometry2-0.25.2-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721508369,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"02b900acc4e6c47f92467c6eb11ae826","name":"ros-humble-geometry2","requires":[],"size":12004,"version":"0.25.2","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1a006a1cb77ff7f1041c5304c23fab1b1d8731ac2e29a07bef21b203c9507a2"},"ros-humble-gazebo-ros-3.7.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-rcl","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tinyxml-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1677542135703,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af3b119bcb9a209684789b7401fbe296","name":"ros-humble-gazebo-ros","requires":[],"size":898699,"version":"3.7.0","binstar":{"package_id":"6392d513a2b71210084391a0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a814dc1f2ec28e12dce78e0bc9426a213ff9aec5f7a2a2f5a0614e6a5ca1ef5"},"ros-humble-rviz-common-11.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670567575916,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8109a2ec835f7235a4f83e4ec8a040a1","name":"ros-humble-rviz-common","requires":[],"size":815883,"version":"11.2.4","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd3a50909f2c63dd9b5848bf3161a73db31daa3840558f374f79c9664fc36e26"},"ros-humble-rviz-common-11.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675721715616,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"648447248dde8e5ac516d347f0a0da75","name":"ros-humble-rviz-common","requires":[],"size":832656,"version":"11.2.5","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c1f6589457bb18c86900356d46c80cbec80f18c0d27aeeb4c9c701cb6026e18"},"ros-humble-rosbag2-compression-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670566975651,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6a42fa8b56e3b2e90b7a04729c0b545b","name":"ros-humble-rosbag2-compression","requires":[],"size":164873,"version":"0.15.3","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca31f3461d69233e8d7b376f851533ed4a2c41131e514d6db05c89d24ddd39e9"},"ros-humble-rosbag2-compression-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721526244,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7694b8513fd4c871670ee9a95886de5b","name":"ros-humble-rosbag2-compression","requires":[],"size":167499,"version":"0.15.4","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6447f883c07d3094f6b63832d559f6e03442952acc1dd46a618adf189c0b0612"},"ros-humble-controller-manager-2.18.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670567083594,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2e5351686bb7751987ca0bbcd674aeae","name":"ros-humble-controller-manager","requires":[],"size":308337,"version":"2.18.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fdec47e7bbfa27eb21054b07ce77be67b7090578c2f6a39824497241076cf31"},"ros-humble-controller-manager-2.22.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-diagnostic-updater","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721601504,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"710ea82600a97a3a1fe76fb9e85d6869","name":"ros-humble-controller-manager","requires":[],"size":365845,"version":"2.22.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be4a42aceb8b31f56c85ac2361bb74fce3b05bcba58481f549eb41f53a80fa5e"},"ros-humble-rosapi-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-rosapi-msgs","ros-humble-rosbridge-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686905450407,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"48b64f4b48ac364cdf795c37edd120d3","name":"ros-humble-rosapi","requires":[],"size":41094,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d36b575f4229515c386c800b79ba67fb5a535f449d0d73de38b67d70896f2222"},"ros-humble-image-pipeline-3.0.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569626046,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6c3d0883b14971ba25c72b542005a38a","name":"ros-humble-image-pipeline","requires":[],"size":9543,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"461ccd8fc0bdd5d48a4857477d167dd97867c95e82f4a797f37768f4d1e1ecc4"},"ros-humble-image-pipeline-3.0.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722245565,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7dd7aca571803791d04d5c0cae300d4e","name":"ros-humble-image-pipeline","requires":[],"size":12934,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7f9638b3333b98cef1285f95b81188a7778d228f9a43e7c5e3e56bfe3287141"},"ros-humble-perception-pcl-2.4.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670639472971,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74711806ee73b7d0a43c40d3071ddd4f","name":"ros-humble-perception-pcl","requires":[],"size":12669,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fcbec74648eb69236c0823b572d343b2cf045031050d40791d35eb52deb5d0a"},"ros-humble-perception-pcl-2.4.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722253811,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e3c9f2a8e86b0ac72379783751227e74","name":"ros-humble-perception-pcl","requires":[],"size":12837,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88f5bb8250633272dfaccce46c4ab3fdfb9b9e681645eaa266ce882756bfa5b5"},"ros-humble-nav2-velocity-smoother-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569611069,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9735e31c900f2feb7b4d974d3b75a611","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":172984,"version":"1.1.3","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5afcd091378f93564690aa257ac12a47e7330a683a50073aa7d8029e3f5f52c4"},"ros-humble-nav2-velocity-smoother-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722303555,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"04fcd194dc2eb6aea89fe490e8c22e24","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":172109,"version":"1.1.5","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3c040dab6df5a8d3cac43b44c7f54a57e0d6623116010b86b64dba9c0b8646a"},"ros-humble-ros2cli-common-extensions-0.1.1-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569413093,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8d669537475b1a9cd9cdb0075bbeb6f9","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":11601,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b70a88ab01fbb9f1a6e0f8e837c49e9b90af081bd7f625e3ccb16760dd0099d8"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722214574,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9aa4b408bef7fd7acae76cff935f251f","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":11804,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1185b8f78bc8387c50b74e9e434ab591bd00a86354c148c01856e1347dec6b4"},"ros-humble-nav2-amcl-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641640819,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a926333a6ecc00f8659473b32b51402a","name":"ros-humble-nav2-amcl","requires":[],"size":481117,"version":"1.1.3","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aef2025fc9196b0e920091cf906b91acaff7ef1cdf9bbad4c8c05a2f31b105dd"},"ros-humble-nav2-amcl-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722367502,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4215de9bdf948c43bc60813f0921021c","name":"ros-humble-nav2-amcl","requires":[],"size":479907,"version":"1.1.5","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4ff388408d5e8232f17a0f37c9cc2171da2e32ce0b053b03f9e2de61a64688d"},"ros-humble-diff-drive-controller-2.25.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1695255787997,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"0274bc5f1ff681866ec921f2c94a54e4","name":"ros-humble-diff-drive-controller","requires":[],"size":617060,"version":"2.25.0","binstar":{"package_id":"6392dd9a46f81babca30428d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"595cdddd810ff6ff1ec468eabe3210d83046d6db97820c34c67146d1de352a48"},"ros-humble-sros2-cmake-0.10.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569656351,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4a7af004d65f15ba6acb461325730c4f","name":"ros-humble-sros2-cmake","requires":[],"size":10459,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5784a97d893722374e3b1993c811f52cf036534d996271f95a67d45377505ece"},"ros-humble-sros2-cmake-0.10.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722216752,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bc7494f21a9c4a41a37ae143acd774a5","name":"ros-humble-sros2-cmake","requires":[],"size":12845,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b498a5da0e79fbf2cedbc5e5e4f94d6a3a925bd10e9dd297e8109accaa0406fd"},"ros-humble-rosbag2-compression-zstd-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569433285,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"47dabb5f6363c75096a3562b0a64f9a9","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":37990,"version":"0.15.3","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8249f4ca1e7dc82b9ae5028112e68be0296f40ed034fe3391465f13963af138"},"ros-humble-rosbag2-compression-zstd-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722232018,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"45948b988a621d63e173a9e203022233","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":40481,"version":"0.15.4","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b35a4dffca7c81d00aceb541048dcabe5330e003dd43276bbddb81c6af84230b"},"ros-humble-nav2-lifecycle-manager-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-bondcpp","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569743566,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c02a338abe4a64570c3db0b3efcf3424","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":161646,"version":"1.1.3","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"552597a296f3e78333ebebe579e5405af65bbfa0e91f6698605cf86a946ba8a2"},"ros-humble-nav2-lifecycle-manager-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bondcpp","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722297757,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c23c0d8d1133043eebd07a885e4a9c75","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":162915,"version":"1.1.5","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8f699c8238b1a30127ee99ad7e8003687aa5a1e80d0744c9b185ae68734cd24"},"ros-humble-nav2-map-server-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["graphicsmagick","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569609762,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d0be381c9bfff28683b383cb7459577c","name":"ros-humble-nav2-map-server","requires":[],"size":301404,"version":"1.1.3","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65d89d2718bf2f1e00197693c7dda4a5dfceeefa473624d2eba06334944a05a0"},"ros-humble-nav2-map-server-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["graphicsmagick","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722374589,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af03814e74802226c01b4ff022b7b22f","name":"ros-humble-nav2-map-server","requires":[],"size":298857,"version":"1.1.5","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b59a62c738acf734d025b24a2815f7d49c9246a8e39912bc6de0ee4198e00184"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569460915,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"47808d2940b4e0fa546f4d2ef3d22420","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":25472,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81a1422ad13e660378525460a1a962fe0a784f25cb4cb740cd774768a8b2ddd6"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722224420,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3e0b8183da2c1f09edb60a816e93e85d","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":29716,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a13c0d4d4f4a63f94bcca84a63d67ed1306fff650610161eae6375d50d01fba"},"ros-humble-nav-2d-utils-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569578669,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ed4096a34d9f3de446c19936a3adcc32","name":"ros-humble-nav-2d-utils","requires":[],"size":34376,"version":"1.1.3","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a4926f73d5b12ac88d3e7c667ce4ea71ad6522cc3b626b616139cf27f555145"},"ros-humble-nav-2d-utils-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722273691,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"16a86fd2951ee59ef108ff57dd6fb885","name":"ros-humble-nav-2d-utils","requires":[],"size":37061,"version":"1.1.5","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ef22e539ec2f9d651ec52fd04468e9e43e94f446b30e3588cba1646e6928e2b"},"ros-humble-gripper-controllers-2.15.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569517867,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f43b5549612f30e71d40360dfc44731b","name":"ros-humble-gripper-controllers","requires":[],"size":101653,"version":"2.15.0","binstar":{"package_id":"6392de33a2b71210084a68c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"168741e341f744b7ec218a6b8c95cab31e4698471fef9cecd4ceaa626e47c2fb"},"ros-humble-gripper-controllers-2.16.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722276722,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"91c633d241866dc5e99e097635694cfe","name":"ros-humble-gripper-controllers","requires":[],"size":401456,"version":"2.16.1","binstar":{"package_id":"6392de33a2b71210084a68c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e272282a54a5c3c2995fc83ca1395b879988d34c3429a826c442a81432e9cff2"},"ros-humble-ros2controlcli-2.31.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pygraphviz","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1694672890289,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"e115cc03f63240d1fb61ee7422880b3d","name":"ros-humble-ros2controlcli","requires":[],"size":38429,"version":"2.31.0","binstar":{"package_id":"6392de6754e9ace854e33638","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0d7c587c8d3de37dd6cf7218f58c0559739e7412caf718e443366ad21905d56"},"ros-humble-cartographer-ros-2.0.9000-py310h1ddb918_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["abseil-cpp","cartographer >=2.0.0,<2.1.0a0","eigen","gflags >=2.2.2,<2.3.0a0","glog >=0.6.0,<0.7.0a0","libabseil =20220623.0=cxx17*","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-cartographer-ros-msgs","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-nav-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h1ddb918_2","timestamp":1674556921732,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5f6f81f0fc6c34c32a0e58c95558fdf0","name":"ros-humble-cartographer-ros","requires":[],"size":1056140,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9db558be92cd5e270103bb8ea98b2730b43e0bbc806d29cc22ae1ee3c03d1cc9"},"ros-humble-cartographer-ros-2.0.9000-py310h1ddb918_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["abseil-cpp","cartographer >=2.0.0,<2.1.0a0","eigen","gflags >=2.2.2,<2.3.0a0","glog >=0.6.0,<0.7.0a0","libabseil =20220623.0=cxx17*","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-cartographer-ros-msgs","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-nav-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h1ddb918_3","timestamp":1675721821453,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"31b5af5206d2b0c895faf73b25e0d66f","name":"ros-humble-cartographer-ros","requires":[],"size":1052636,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"529411471e6758288834798063e9ff352d42d61e31a8f5138d4c0bc453e84dfc"},"ros-humble-transmission-interface-2.31.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1694672907872,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"77652f8aff2caf285def4ef11e908fc9","name":"ros-humble-transmission-interface","requires":[],"size":65839,"version":"2.31.0","binstar":{"package_id":"6392de6966b3e4e3def7dd4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"213e1c55b319e9c06fd2de1ce9fd824276459ba38091b48e4f6f9b43ce322f02"},"ros-humble-joint-state-broadcaster-2.15.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670569462800,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad055498fe7c6be42e21f8495d851091","name":"ros-humble-joint-state-broadcaster","requires":[],"size":117153,"version":"2.15.0","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33d29813c3fcfa6a90bfb7d6bd0d90757193d3e9d836fb853682503cd85c7d11"},"ros-humble-joint-state-broadcaster-2.16.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722274338,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"26d651dd8c1aed452d33b15d32a27cc0","name":"ros-humble-joint-state-broadcaster","requires":[],"size":416480,"version":"2.16.1","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27b54c05e3c70ea873c6c7f4407be284e119d9f61e4ae54bee9f310941ada2ee"},"ros-humble-rviz-visual-testing-framework-11.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670569643763,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f91d348962aa5df2c32b90788b440783","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":88800,"version":"11.2.4","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91c3b77a10a24077053f318c69202184cb4cbe8e0edfc227929e184dcf3ef11d"},"ros-humble-rviz-visual-testing-framework-11.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675722311892,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7bee68714ef3eec8886c7104260edd76","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":92952,"version":"11.2.5","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec0160a19d18712437c21c969a289db526336a17b177cd732420a72cd1111b45"},"ros-humble-joint-trajectory-controller-2.15.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-angles","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670570114513,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5374a595787d8621ba14d7a499c775e1","name":"ros-humble-joint-trajectory-controller","requires":[],"size":291616,"version":"2.15.0","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa57c87dc45d7c859f68396e34bcba16d37586a04da0b38a50bc7095197d9464"},"ros-humble-joint-trajectory-controller-2.16.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722313529,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"07140871e49aa477a2aeb64bb7a7856f","name":"ros-humble-joint-trajectory-controller","requires":[],"size":588007,"version":"2.16.1","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71b66f112f94ccff57df65d88bd6eeb3eb226172a44ccc1bc665e36f4bdf60ff"},"ros-humble-nav2-behavior-tree-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb58d347_2","timestamp":1670569960629,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"07d9959494a3ca474ae502e10e329ea8","name":"ros-humble-nav2-behavior-tree","requires":[],"size":2168418,"version":"1.1.3","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e44d5ed0887c83c0c2025a68fd426d7adaa6168b7db8c3d5a0873e76ebc43ec0"},"ros-humble-nav2-behavior-tree-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722481690,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"907c0d708f1e59fe3f0282bfc4586ef6","name":"ros-humble-nav2-behavior-tree","requires":[],"size":2309798,"version":"1.1.5","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc01709d19a48dd5ff48724303151e89752feb9b425117b37b9b35cdf6597d4b"},"ros-humble-forward-command-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696919342308,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"6f5206fd7ceb1f57eda5a0b8f905b8b9","name":"ros-humble-forward-command-controller","requires":[],"size":520581,"version":"2.26.0","binstar":{"package_id":"6392dec66a03c9fad28ecf2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7dfa0f08cad92ecc82d999a9e3aab20438ab07918c9332f2f09ddd618e1f6374"},"ros-humble-gazebo-plugins-3.7.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-ros","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1677543048362,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"587cc7090c9dd362cccb6264abfc27fe","name":"ros-humble-gazebo-plugins","requires":[],"size":3662057,"version":"3.7.0","binstar":{"package_id":"6392df53e6a2f79ab8534af3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edeb0e94da75fd17cd2315ee894ff26d8abda9242442f9ce7708d0dcf19d705a"},"ros-humble-force-torque-sensor-broadcaster-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696919338681,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"9415acda97f291f0051ede9a9a65fb9b","name":"ros-humble-force-torque-sensor-broadcaster","requires":[],"size":457030,"version":"2.26.0","binstar":{"package_id":"6392df59e6a2f79ab8534dd9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf882819a1a773c966df10c11c937bbf9155dd077d8f4cc76cbef23b969af25d"},"ros-humble-tricycle-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-backward-ros","ros-humble-builtin-interfaces","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696919362294,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"a32b8c0cab93303aa6acd3fef0a9072b","name":"ros-humble-tricycle-controller","requires":[],"size":256746,"version":"2.26.0","binstar":{"package_id":"6393ee5966b3e4e3deab4512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef2d518bb8acf4f158ac6ca416b940a6821b51e8c50478ece86568a400721570"},"ros-humble-velocity-controllers-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105137078,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"377a371a4fe921a312f23d864e9326a4","name":"ros-humble-velocity-controllers","requires":[],"size":32331,"version":"2.26.0","binstar":{"package_id":"6393ee5d4f66fd116f5eabee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3359a5052eceabc3a8003259845075625ccf757c3a0d9ef06d151be66fabdd3a"},"ros-humble-imu-sensor-broadcaster-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1696919334749,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"45a6ef6c501d91a08a846cbf8cd7f683","name":"ros-humble-imu-sensor-broadcaster","requires":[],"size":455703,"version":"2.26.0","binstar":{"package_id":"6393ee5fe6a2f79ab8ccba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2489c39723b068a83edd510c5e8bed6ba0b59795d0fc317b13374aacb1e8a000"},"ros-humble-ros-core-0.10.0-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670639365242,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cb3f5e3393351c5d88ea5db614e32eaf","name":"ros-humble-ros-core","requires":[],"size":12036,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f047dcc17866e6e35c46b1ddb921e529c1d0b4c867cf28c7f3b58b76883486b0"},"ros-humble-ros-core-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722876714,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f451a281eb8ae74decce21bc57ebfb81","name":"ros-humble-ros-core","requires":[],"size":12205,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43e994dc3ca79805ddcfbd776beda2a40f8f75e01f3d2d61a637fca5c214875f"},"ros-humble-ros2-control-2.31.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-joint-limits","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2controlcli","ros-humble-transmission-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1694673292587,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"9faed82587af79cc72b34effe8c1a516","name":"ros-humble-ros2-control","requires":[],"size":12402,"version":"2.31.0","binstar":{"package_id":"6393ee8454e9ace8543c1b9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"167b452a68de851742b27ef6bc2cab954a5f7b880e9b7749f3e83a7192d042cd"},"ros-humble-ros-ign-image-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674558203646,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54052b30859820a658e45725b352c93f","name":"ros-humble-ros-ign-image","requires":[],"size":17481,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59546ddd53047a5467c203ed3b5bf27806e402525d8d01f24648b1a0d3fc026c"},"ros-humble-ros-ign-image-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675721517827,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"470821abe9a5230c4a85bf4694a8a84f","name":"ros-humble-ros-ign-image","requires":[],"size":17509,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57ef34203d02e59883bdfd28a1ea72a7685dc072b472bf0b7d8e0248c60d5812"},"ros-humble-ros-ign-gazebo-0.244.9-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670639381932,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d3ed4bd1cfb01dbb79e4b0d025537779","name":"ros-humble-ros-ign-gazebo","requires":[],"size":20583,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed6ac987c827abf2f0aef1d9d1479cc5f56a2c1268c522aacb5fc5e0bf7d64e0"},"ros-humble-ros-ign-gazebo-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675719890916,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ebab9f1c166420f09578b94fa00cfbe9","name":"ros-humble-ros-ign-gazebo","requires":[],"size":20934,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6612b74e12da31b923ac30edab756289c9e281c080c3a6a0f4ec11c7eafa7254"},"ros-humble-admittance-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-filters","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-trajectory-controller","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105686339,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"0e48fe17d9024216284378dbd07071a1","name":"ros-humble-admittance-controller","requires":[],"size":678225,"version":"2.26.0","binstar":{"package_id":"6393ee9f4f66fd116f5ed0be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60a5c9e28300f2bf934a214bd7d71daceaada9712836d40d54417c7e856e4f37"},"ros-humble-effort-controllers-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105125983,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"948781c07f9ab3a446c8236ef63d5b82","name":"ros-humble-effort-controllers","requires":[],"size":32251,"version":"2.26.0","binstar":{"package_id":"6393eea02b3749bdb8f153ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a68158c7c6de4c049c30692d8d8a831a018bdb905f45af1c43165b75b9046d1f"},"ros-humble-nav2-costmap-2d-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670639654351,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b555f582c4ccab1f4a382e55cff37ca8","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1523625,"version":"1.1.3","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69cbe4a123be89c5287f48c6cd1cf4ae0605240f1f78578da895a2f576d56d3d"},"ros-humble-nav2-costmap-2d-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723095895,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"50f8964da70de85d8f8ad47120d4e742","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1518530,"version":"1.1.5","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e56c4df3501f0c6129957e2d9b2eb848776057682b9bdf76f4bd179691cbf8e9"},"ros-humble-moveit-core-2.5.4-py310hf9c392f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hf9c392f_2","timestamp":1670640380287,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62b4015fa1638dd0bc4a063e7994658b","name":"ros-humble-moveit-core","requires":[],"size":1710633,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fd56b036225c43da1f93a3ef949384e6f4d0658cf30285c456b51c81d7cc334"},"ros-humble-moveit-core-2.5.4-py310hf802718_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf802718_3","timestamp":1675723180595,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"17b7324274df1f58d501170ccf78bbb9","name":"ros-humble-moveit-core","requires":[],"size":1714177,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86cdd761ea112dc7d96bc6465c8361bf1c7152ec7b7bf7a6fea1ca4919af5a75"},"ros-humble-position-controllers-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105137296,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"be27b7eec789df0c2fa1ba4c4a7981fb","name":"ros-humble-position-controllers","requires":[],"size":31533,"version":"2.26.0","binstar":{"package_id":"6393f3694fd2d87ac8ef7853","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a53775fb75cc70e5663432f7b8ab2b4ffad676e80dad8fcdc97303c2ccd211bb"},"ros-humble-rosbag2-transport-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670639329511,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5c542ba47846827ec30b3232ad6817e7","name":"ros-humble-rosbag2-transport","requires":[],"size":387054,"version":"0.15.3","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec88ba8524c234fdcf02e9790dcc3767bdd2b9a7359c8bcef5510f0697f2d1dc"},"ros-humble-rosbag2-transport-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675722953740,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"86f90b189d10226166916a46b87d4a40","name":"ros-humble-rosbag2-transport","requires":[],"size":386438,"version":"0.15.4","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30f4caf7b3e9997e57c5851d61f1f360fde5682ca9b8670144532045e5080334"},"ros-humble-rviz-default-plugins-11.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670640597963,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c8d32170fe5966402df687c4f5e7fd5e","name":"ros-humble-rviz-default-plugins","requires":[],"size":2237144,"version":"11.2.4","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6465b1c1b8d201fa74e57569c721e9d499523c740b6b011cf07c271ad1c11de"},"ros-humble-rviz-default-plugins-11.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675723271121,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1ebd9275029ec96b7c74a275008ffb37","name":"ros-humble-rviz-default-plugins","requires":[],"size":2230855,"version":"11.2.5","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"065f450f59fb4e7446191657e17b3e0727cfc943079f18372327976a7a86758a"},"ros-humble-ros2-controllers-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-steering-controller","ros-humble-admittance-controller","ros-humble-bicycle-steering-controller","ros-humble-diff-drive-controller","ros-humble-effort-controllers","ros-humble-force-torque-sensor-broadcaster","ros-humble-forward-command-controller","ros-humble-imu-sensor-broadcaster","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-position-controllers","ros-humble-range-sensor-broadcaster","ros-humble-ros-workspace","ros-humble-steering-controllers-library","ros-humble-tricycle-controller","ros-humble-tricycle-steering-controller","ros-humble-velocity-controllers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697106581484,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"8c9e7867eea12290ee7f5e7ad8112e5b","name":"ros-humble-ros2-controllers","requires":[],"size":12300,"version":"2.26.0","binstar":{"package_id":"6393f4ed4f66fd116f621e72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64765ce45d6791cf6d57c2d7c2db8706064bc0206d5527722e474ab223358e13"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805218844,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f054485b8098857c86e2e284563daf52","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":156546,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bcbec83e226a460733d3c10b3493c6662992abdf84572091c5ded639fadc01d6"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723802496,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"172dd718149e9643356cb59052180b56","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":156707,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"111932331c0c0df589cec8169b52c7fb5d57723ac796d12a551c2dd34bf7ccec"},"ros-humble-nav2-rviz-plugins-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670641759477,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9935ee3525a171d19c73776214b6cf3a","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":465962,"version":"1.1.3","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16823af5fea897e62672d242a33702786715d76a1768bd291e1fea2f63c25304"},"ros-humble-nav2-rviz-plugins-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675723899472,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f89aab8fa9e36824887a327a37e52c09","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":465159,"version":"1.1.5","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"acc90041a67f48fafb4ccef36c58b523f5c9ec8eabdf6fe3f351f8e7e5367118"},"ros-humble-nav2-core-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641504571,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ce5f7b2f6587cfaa2ebe932e72951178","name":"ros-humble-nav2-core","requires":[],"size":18517,"version":"1.1.3","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de0c6f254a80ccb9b0d65f19ce488c5c8f15f668e4f6f45b47a918ac86d949af"},"ros-humble-nav2-core-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723707522,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2a6ee2e40aa92b90d2b1d785e29edf41","name":"ros-humble-nav2-core","requires":[],"size":18608,"version":"1.1.5","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"013675783072d992cc4619369edd2248bd59d8c2635679f2e2c97e16937bc5d1"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641708713,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a6e5931cb1968290a9c5ae37e89a004a","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":345654,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23128b93b417874d66cc1fb7e1e97e800b161d55ba189e717a599aa48debf8f9"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723802520,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1ab958067455562543839f97b21b1f0a","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":344226,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67709408777bed47c2498d5afa448a83293faa4512ee862762661ffddabecb47"},"ros-humble-costmap-queue-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641524546,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b97c5d3498233f8b6bef2961b7c43133","name":"ros-humble-costmap-queue","requires":[],"size":28707,"version":"1.1.3","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8d61a15565e4868b936d59cc1823061a48de425158265ca060c14a8e4fa75b2"},"ros-humble-costmap-queue-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723731701,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1744339447d562a4762983567f598e69","name":"ros-humble-costmap-queue","requires":[],"size":28888,"version":"1.1.5","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"735f6f8c2760824016eb635407c656bc38fb49383c82eec944ab72466191cf61"},"ros-humble-rosbag2-py-0.15.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641671599,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e364af634630098dcf62c7020dfa9c74","name":"ros-humble-rosbag2-py","requires":[],"size":491633,"version":"0.15.3","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a02508e092a9ab8e4ba5532e4cc5829b15d1582283a6dfb18279c339ffa49f4"},"ros-humble-rosbag2-py-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723748233,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d77aa2990adea0968911938d1ffa79cd","name":"ros-humble-rosbag2-py","requires":[],"size":492704,"version":"0.15.4","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d58536f21e0d6c17cba37a290b59be9ec3631fb4cefc60eb3227c91acf34a1bd"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641599538,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ff556ea4c6ebe61f419e26e3adfe890f","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":136096,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e965c32010453908332e588507bf816ee7c2df30b45651ea704415b6068f2fdc"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723784496,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"727c48b02b71c414269b405546bcc431","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":136416,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce9068d201a2da6603fcbcf25cae59e9e54245fe5f610e7d0a119dcfaf8aa8d7"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670641779155,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b79ef7bb651d87c91dd7da1684498ef","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":140425,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e63381115baad4da53e65c9e6e2c5ffd45573a6d57d8878c26984e7ecc607b80"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675723830856,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"31717db362010bab06766e0b81a11a2f","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":140574,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9922d907efdd488d4938a81cf4e2ade2c1a895aaad1f7f92fecb2b22cc9cdcb"},"ros-humble-rviz2-11.2.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hb58d347_2","timestamp":1670641855975,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aa6b413bc052d82ff71a999ccf4ef96a","name":"ros-humble-rviz2","requires":[],"size":26990,"version":"11.2.4","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5300a0f00399cdf3634d896e8be124dcd75c59d29e44286addf46745e445d1b"},"ros-humble-rviz2-11.2.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675723788407,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2e07dc5d56c6620b79e8534b2eaa6596","name":"ros-humble-rviz2","requires":[],"size":27016,"version":"11.2.5","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb000a58af4907ee755fa706758f8c4c34366b965822f83341ad6436f6a011df"},"ros-humble-nav2-smac-planner-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libode >=0.16.2,<0.16.3.0a0","libstdcxx-ng >=12","nlohmann_json","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670794349359,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d5adf0dd6f3ed4185a9a46f6b27e1d5d","name":"ros-humble-nav2-smac-planner","requires":[],"size":735013,"version":"1.1.3","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9243f750be5f60addd952f9c572586eeed9c714f62e290246a941ee0d182ccca"},"ros-humble-nav2-smac-planner-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libode >=0.16.2,<0.16.3.0a0","libstdcxx-ng >=12","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724500947,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"60c6c5b7af195d22ead7892c9c1e6b77","name":"ros-humble-nav2-smac-planner","requires":[],"size":800481,"version":"1.1.5","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca35debb644f41398f4bc120049da1492e67ce1c6485c8e3f6fa6051fa1e83c7"},"ros-humble-nav2-smoother-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670793937440,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0ba4cbe8a4ffb761cd7e60b6f452ad75","name":"ros-humble-nav2-smoother","requires":[],"size":277081,"version":"1.1.3","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d64458caae97784bf0ba79b2115e5dbbc4df5730e8c7c1b61b14d82e1ea8c2d4"},"ros-humble-nav2-smoother-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724478573,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49fa455f69d108228366f25617ca9075","name":"ros-humble-nav2-smoother","requires":[],"size":275712,"version":"1.1.5","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0af85221d68ff87376857480be6377705af0730126a403a5cfb3a9a0bb0d4174"},"ros-humble-nav2-planner-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805194863,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9d6fc466499b0b051ee21ed7b4e28e9d","name":"ros-humble-nav2-planner","requires":[],"size":282533,"version":"1.1.3","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b65e3efd725335a708a7697a9c0861ef380e537d740b72327aa0ea18b3e21c0"},"ros-humble-nav2-planner-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805434668,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3cd06fe9bc08ab47e8534534ea01ce13","name":"ros-humble-nav2-planner","requires":[],"size":282268,"version":"1.1.3","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8aaa42b764b6af697e8898ab8d5837c193496f623d06be0d1786548d7198ea5"},"ros-humble-nav2-planner-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724465164,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"94ad6a68bc6c05850fe32f0f75645c75","name":"ros-humble-nav2-planner","requires":[],"size":279360,"version":"1.1.5","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed55e8bcb64c31ce0e37416b892373b3ffaf53435cbcd0cfe9324d94f0ad7584"},"ros-humble-nav2-navfn-planner-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805331907,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"281eaee8fe676874b3adce87d5cc227b","name":"ros-humble-nav2-navfn-planner","requires":[],"size":64099,"version":"1.1.3","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3eb996368c490997b4c6ca28730ddc3f49781b87a66c70704a438e88f2043de"},"ros-humble-nav2-navfn-planner-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805214284,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"56c2a986e7358ee48bcb5244e82e8187","name":"ros-humble-nav2-navfn-planner","requires":[],"size":64130,"version":"1.1.3","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9312e6a0c12c51e52bf09a8605f8de95329982fecdeb8a8d33f3e9662daf9a71"},"ros-humble-nav2-navfn-planner-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724386808,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ddd028aa300b368e2d9db6c47c90e618","name":"ros-humble-nav2-navfn-planner","requires":[],"size":64141,"version":"1.1.5","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3a2e8bb1fb4b91bd4f0c0f032e5af4518062c8518b000f315d02270f2a5ae60"},"ros-humble-nav2-theta-star-planner-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805227353,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"481a7ad21eed5015d040d1a1c92f60f0","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":54653,"version":"1.1.3","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"834c78d3e01524470d84e6b02bca6f5610d484bb2ad6ca687ab5cd11cd3f08ab"},"ros-humble-nav2-theta-star-planner-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805438063,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9267022a46852077763ac919c8991f9e","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":54651,"version":"1.1.3","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a991dcc3e71333e75b53ae92a12479eda064fd68914068c04de3896cdf1e32c"},"ros-humble-nav2-theta-star-planner-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724388109,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5cb8ce21ba55c0a116a2240b7114c38","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":55844,"version":"1.1.5","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff8ef462acaae27cbe52030e684b6cc2da352e7d5ffb2380aeb7e71f92b9887f"},"ros-humble-nav2-behaviors-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805776156,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"947a2d7cf86d139776ae4ef8e6733151","name":"ros-humble-nav2-behaviors","requires":[],"size":728304,"version":"1.1.3","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cee5b6f706fb2078f67280662f3fe5afb9b1051202fe2b1838d91e5eef47b759"},"ros-humble-nav2-behaviors-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724709620,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ee18850b45e6aabf185b347b04b9d4b8","name":"ros-humble-nav2-behaviors","requires":[],"size":724672,"version":"1.1.5","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7a3883acffda77dabf894a387f333816aaf3fb34d302256f0f1519388c991e1"},"ros-humble-nav2-constrained-smoother-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805379679,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e2c91f1c132a7b5413d0ec076baeda20","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":79502,"version":"1.1.3","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f4585792b2591579f25e572322fc3c2a6ecfbb8725d6f91e48b394cc93c5580"},"ros-humble-nav2-constrained-smoother-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805164193,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"13bd2c8595c779a769bef8641ae29a41","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":79450,"version":"1.1.3","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a135fd0da7e59425de3c6be74d9fac726d373200cc5329b24ecefcc2016c6e89"},"ros-humble-nav2-constrained-smoother-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724409143,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41040e37f4952065fe20f6049084b865","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":79503,"version":"1.1.5","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"426cbaa15a1f6cec744cbc5ad34741adc3374e6c6d620c5d148c2d76b5084134"},"ros-humble-nav2-bt-navigator-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805387323,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"493df880f990132b061bb413e2713d7f","name":"ros-humble-nav2-bt-navigator","requires":[],"size":405205,"version":"1.1.3","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7bc6d073d5537ced4bd6a4eca98f9b409bdb5c2b1d10f79c348e98cb14b8aab8"},"ros-humble-nav2-bt-navigator-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805323913,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac087b15f9f1919106a1f753e94cdfe1","name":"ros-humble-nav2-bt-navigator","requires":[],"size":405790,"version":"1.1.3","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf5551d8087fa242db42f37d8346175a27f681186044c7075090638f18d75f9b"},"ros-humble-nav2-bt-navigator-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724461263,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0cb2da3e7f85892e43ec0ef03d118c19","name":"ros-humble-nav2-bt-navigator","requires":[],"size":400997,"version":"1.1.5","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d38332cf4a8b27851e59dd94582c7d30f2d427e04c8caaf31dbea94a2581bda0"},"ros-humble-nav2-controller-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670794137700,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"738b3363aed7dad83b9513b8a2fc1d0e","name":"ros-humble-nav2-controller","requires":[],"size":443595,"version":"1.1.3","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd3e0470ba55380d0f12aa3c3503cdfb39d2220b427a063369e6cddb3bb0bbf7"},"ros-humble-nav2-controller-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805517396,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54eefda7b009954dd436435af73917f8","name":"ros-humble-nav2-controller","requires":[],"size":445121,"version":"1.1.3","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d95db06ab0b6f7fe7762c6c486381cf0d74ef8ce95f0c320c721dfae1e9f654"},"ros-humble-nav2-controller-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724541074,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"897bcf6841f7a0938cae519c2a956a35","name":"ros-humble-nav2-controller","requires":[],"size":444008,"version":"1.1.5","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6f68a24a5c1ba16fa209145d71385f98ea1e63cba086fc7926118e79705801e"},"ros-humble-moveit-ros-planning-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670794555223,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c8c9d2dbf72dbe834077ecb68d844be4","name":"ros-humble-moveit-ros-planning","requires":[],"size":1968674,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12c28ed6ec41e2ef6ade174b27b56ef2d9f19ecaef717473c77fcc88fb4113df"},"ros-humble-moveit-ros-planning-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724596624,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"eb53064250e8c47d3f1f26fee998d25f","name":"ros-humble-moveit-ros-planning","requires":[],"size":1956047,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef3edb63e308e08ff4a96d699d9d01001fbc1c465c5107fe0332c4cad3ce6a2f"},"ros-humble-nav2-waypoint-follower-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805292937,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b33cb9fa385cca5ecc8d4612c3fc7a66","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":931812,"version":"1.1.3","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"243efe35127203c10263a48eb26e39d7c7d2a3ebf2108a20040dd28bcd3a84f1"},"ros-humble-nav2-waypoint-follower-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805621218,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"98cc795200be1c17f78b3a322116efdf","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":933029,"version":"1.1.3","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e8d9bb882f1e87c5fea390998d8dcd1d2e8367bad1ab85233caf89203c55d51"},"ros-humble-nav2-waypoint-follower-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724500357,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e96363b0607fc0cde1fb74501c0418c8","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":938312,"version":"1.1.5","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e2ed95d9d8cef7c25bf91cd0c9cdc4b07f53e879bb940335c3f91397df416d9"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670793842915,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1af888eea67f4f3af753cd7cc9f5e170","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":112719,"version":"1.1.3","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"328e2f3481f7b532de3acfbfd913258f4676aeec18dc374682eb56fdc53e5611"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805217072,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"80f4c066a834c3178b1ecc31e457600b","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":112863,"version":"1.1.3","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58fa1f6570460bc5d69f378e0b533b2c3da860a8cf01a486ce562d3da4f24ba9"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724388655,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"674cff6e7394b1574ffec8296b4ec51c","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":112783,"version":"1.1.5","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4bb1c3974a24d216f754479e485a37aeadd53479aec658cf06614f6bae3d45ed"},"ros-humble-dwb-core-1.1.3-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670793870416,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ec7a33b9c4c0be45994323d136203d41","name":"ros-humble-dwb-core","requires":[],"size":267676,"version":"1.1.3","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7c39d8392d1b4282834e6503737df760a0dc7a5b31db2a5e329d8406529bc5b"},"ros-humble-dwb-core-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724419888,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ec3cc7e2d0ba353087d1cfa1d8b7b9c7","name":"ros-humble-dwb-core","requires":[],"size":267043,"version":"1.1.5","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ae097ad9b260cbae02e9165c09c7f84fecd2dd4bd233ccf8fe30ea20b4cd843"},"ros-humble-moveit-plugins-2.5.4-py310hb58d347_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hb58d347_2","timestamp":1670805275908,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"29b379f2cecd0c9187668c592859d6a5","name":"ros-humble-moveit-plugins","requires":[],"size":12200,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7298a4e5ab29d92a34de6ede8c1bf2ac3945482d284ff9cc76dcc6cd9744f1aa"},"ros-humble-moveit-plugins-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724319695,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"515f41fcb6e772ad93f1f2e87105257a","name":"ros-humble-moveit-plugins","requires":[],"size":12408,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f29e97f78e88b572f37da8b1a1185ffa0d40f9dd916dde644ec674f3e86ffcd8"},"ros-humble-moveit-kinematics-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805342525,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e5f26434cf3f4d879c5404454bd67c60","name":"ros-humble-moveit-kinematics","requires":[],"size":308408,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55489e0351642ebc9990b177419b27a651ec51878eeac9b3cdd1db5405d05581"},"ros-humble-moveit-kinematics-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725271988,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2b77d82f50a88958784f5723035f8f18","name":"ros-humble-moveit-kinematics","requires":[],"size":312572,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27d79cab5118916d0fb410587fde7faf4b18e0c4ea967edc8f114c09ecef1516"},"ros-humble-nav2-rotation-shim-controller-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670806535509,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"217f86515cc20d8b357846e689a2921c","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":138156,"version":"1.1.3","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fda286c1cddd86b0244640181d58ce66dbbcaae188520bb4dac8d0810651804"},"ros-humble-nav2-rotation-shim-controller-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725218256,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"505d305f6123d07b3a26a1e7e59a1831","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":138149,"version":"1.1.5","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdef942e9890d7a33d1e37d7bb889ebb74c3b1dcc5e6c72a9cf9490c3bcff360"},"ros-humble-dwb-plugins-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805222985,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"06d3bfc53527cf0301f1e3ff6abf4955","name":"ros-humble-dwb-plugins","requires":[],"size":64050,"version":"1.1.3","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71585e50d83bb1e93e99d6d22b575630423c13cd8898c15b9d5afffea537e17b"},"ros-humble-dwb-plugins-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725217667,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e8da3645db321f694daa5ffcf06031a2","name":"ros-humble-dwb-plugins","requires":[],"size":64078,"version":"1.1.5","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f077b5b4ba862a92685bff2c5e2ce96609662ef91e6b0f7398456185426bb402"},"ros-humble-dwb-critics-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670805447189,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"86ce132011365610d6ade4e18cc74153","name":"ros-humble-dwb-critics","requires":[],"size":83169,"version":"1.1.3","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a408e5a4be1dd2d8d7c1dfd41e9ab5f4408cd3a2b2243156cf90a8b4e304e5f6"},"ros-humble-dwb-critics-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725245640,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd6de11a44b9870e786cb2678d116076","name":"ros-humble-dwb-critics","requires":[],"size":83064,"version":"1.1.5","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7040ba2ca8ae9f54eb00b2631c5116f87c3f5e4d58ec09fd79eb08f55bd7cb1"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674558230093,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ffa6da780454f99b752fe48e2e4e18c1","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37891,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c97ae7435eea864de95f43a6b7e1fc16722c5219ecda5a2d3cdee90e664c62c7"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724337128,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2e16eb36d683ab30048972f4a7dae991","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37802,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"902e635daa861fd8a6bd5e64a28d74c9648776488c4917b1cca8ced589d0fbac"},"ros-humble-rqt-bag-1.1.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670806439855,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"db3addb54101ec45f38daa5627ea1ac8","name":"ros-humble-rqt-bag","requires":[],"size":151438,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8d48bc17cf29341a02258f6a4f1a34fdb0526703745d54146ee57389ebf07e3"},"ros-humble-rqt-bag-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724295896,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a4aa559b123cc3f165cbf7bfbcd10a31","name":"ros-humble-rqt-bag","requires":[],"size":149255,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7898048d8ac1f78a42c049a7c9ff8ab04253270d79a8940a653072d3c4091df"},"ros-humble-rosbridge-server-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tornado","twisted"],"build":"py310h010ba66_3","timestamp":1686905872377,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"23360bfb40921eaa0d9c1f276cf98fde","name":"ros-humble-rosbridge-server","requires":[],"size":33365,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65b3e67b74947a4b962897cbbd916e1601f8fd082e2c53c667dfb005f86cf51e"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807618492,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b23e77ac9bdf708ef7e04a9ef059ba8d","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":236764,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf4c0c523d7eddd887a16d5aaed7a4aeab7623b6c594947ee663be908d920962"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725245095,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"953ace8c669ff6851f079478a35e2165","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":238443,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8822c5de6b14b74e7828de38392105a460358a8139572508dadf83e162d9722"},"ros-humble-slam-toolbox-2.6.5-py310hda37a7e_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-builtin-interfaces","ros-humble-interactive-markers","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-map-server","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","suitesparse >=5.10.1,<6.0a0","tbb >=2021.10.0","tbb-devel","xorg-libx11 >=1.8.6,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"subdir":"linux-aarch64","timestamp":1693352741797,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310hda37a7e_3","md5":"287d5ebfb3f742e97756b848949877fd","name":"ros-humble-slam-toolbox","requires":[],"size":3179676,"version":"2.6.5","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"219cd89a1419ad0a4435079de21ce2aecf9dccd1fc48af2ee7ac6cd4713d8a7c"},"ros-humble-nav2-dwb-controller-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670806610003,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"78ffa653e0a799d2623dd78ad2de7a4a","name":"ros-humble-nav2-dwb-controller","requires":[],"size":11900,"version":"1.1.3","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2583e2890b1dfc6433825300de30ef92192e48cd0d893910dd5d788b8da3fe67"},"ros-humble-nav2-dwb-controller-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725739569,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03a92dbbbf6067c36b26d845229c715e","name":"ros-humble-nav2-dwb-controller","requires":[],"size":11921,"version":"1.1.5","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f356c75904786ddbded77e792c170eb408059f550009300b8dbac1a328cf97a"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807542268,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"345b60e28fe68816bd0a4ab8c28777fc","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":733176,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b57632492c58f003da0d01f1e3b17f7d871d8c3172d7b09beccd062b189b8e5"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725288218,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3a344b77c0cbad30ac627a6a3b705120","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":727864,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bd1bbcbb2c5a14c9f273df39ad4b4545e9f5fcd6edb44968a71234b9eeb8dff"},"ros-humble-moveit-ros-move-group-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807903396,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"911adf8f1d5413c0f8f4433e04d591a5","name":"ros-humble-moveit-ros-move-group","requires":[],"size":571819,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89e9f1a09687b4104fec56fde405019a653627dcad7211692ae9e1485b4df0c1"},"ros-humble-moveit-ros-move-group-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725895834,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0c3cee8e2b32e937f5d75d913b5c2608","name":"ros-humble-moveit-ros-move-group","requires":[],"size":530624,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04e2c8bf89a497b92e2714ad6bd39ad329d00af56f3495a7c0adb051a3382d4d"},"ros-humble-moveit-planners-ompl-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["_openmp_mutex >=4.5","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807689209,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"17721e0a19b87a9660d2767154a4e168","name":"ros-humble-moveit-planners-ompl","requires":[],"size":471790,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10c84e168f282e8f42240672a81048d2b664711e073999c568055b3177e77607"},"ros-humble-moveit-planners-ompl-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["_openmp_mutex >=4.5","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725333340,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a369fa37dde9e3c2f933f7f5510b60df","name":"ros-humble-moveit-planners-ompl","requires":[],"size":487403,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"341f4b811b0dc4d54f145bc0667814868c892e421342f20cfb80e63f099f4ae3"},"ros-humble-ros2bag-0.15.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807775259,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ecfe7d24ea4cacc8e7b5a30a395e2400","name":"ros-humble-ros2bag","requires":[],"size":38445,"version":"0.15.3","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"869f52aa6c59d833c32db3ea0f92ae865697bd47ea37fcc4538600cba046b3c6"},"ros-humble-ros2bag-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675724303471,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2e5403f14918e033ac4131767ff3274b","name":"ros-humble-ros2bag","requires":[],"size":37267,"version":"0.15.4","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"259bf417f7150acfc0c18734b3611f3ae73ca68d0da7de40a7169c1298abc2ae"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674558889645,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1f3738c624bf3560f190deb3b63b84ee","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18929,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2efa143eab3591fdd472ec695814503508ffc8deb9352c35302636e8c687253"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675725149566,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2c3a3dc8543eda0a7a479be0a1f1d6ec","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18876,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3113a6f2006e880095d6f40282672eded96c776974e28e83a5434056df5e664"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310h405a52e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h405a52e_2","timestamp":1670810977775,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"28b06c8d9e2f222a2b162b97f03cf6ec","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":294494,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dcf03e5921ca93e847ce7f99c046d2edc323105b57bc673e65d5890a459f078"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310h405a52e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h405a52e_3","timestamp":1675725900282,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fd413e4d47897c1bbf966b984c9fcf2a","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":293263,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"517c73bcbb7a7f697832086495a6d1f17fe1a9ce222d7ed12b503bd49927773d"},"ros-humble-rosbag2-tests-0.15.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670811142047,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cbec57b05d4c48799c0d5bf2ba3dce9d","name":"ros-humble-rosbag2-tests","requires":[],"size":11570,"version":"0.15.3","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db8a9277464f5d3a561af8c405b830170f258981c8571dc40a90e6a747094be0"},"ros-humble-rosbag2-tests-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725101260,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a7256262bf6ca640df0203b169b30f94","name":"ros-humble-rosbag2-tests","requires":[],"size":11611,"version":"0.15.4","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"beadccfa2358f5c54d77c829f32c4efbb0791d5c0a447172619f9a52ea6546ad"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670811060959,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bdca95b259db82cb6757ef8aac100797","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":373962,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce063a5654d9f00bfa74128841d41a95384f34acfe0bfaba620db85d36b9a8a0"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726515470,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"544832ac8032a104d29af80c4d77176a","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":373489,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46580cc64bbc8d4eba276b4435f7229b6c5052b77f97ee6ebd8d193b6e5f6f1e"},"ros-humble-navigation2-1.1.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670807363280,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"19aa91fbf9c1da3fcdc2143bfbd09c0c","name":"ros-humble-navigation2","requires":[],"size":14021,"version":"1.1.3","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c9ef3a418265761f28593889b6c7546ee3559c78c53f062c2ce123ba74c55fb"},"ros-humble-navigation2-1.1.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726339851,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"653bc3ac4af7a46907533de664de54fc","name":"ros-humble-navigation2","requires":[],"size":14017,"version":"1.1.5","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6679f340fe040d2a2f14b3f2bd8d6020c3a35c001591dc98973b8f6c23722f05"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674555671872,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fa25df8c370c0f6f1322e1c7b59bed89","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":25059,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a69876e96a4e7f547a2b941c5d6a17290ee70d67bd0d4db126a67a7648e2ccaa"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726325679,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"271e603f3876181702a3f9072822f259","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":25044,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58a3a19fd4be6d013d2ab7fef8b9a53c8e27428a8799f8d0a44fa42a986e39d5"},"ros-humble-rosbridge-suite-1.3.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-server","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1686906296858,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e2faaef20082fa53edb5918ca10689a5","name":"ros-humble-rosbridge-suite","requires":[],"size":11781,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c493dd0cf971fefc88821db6cbbfc7309020d4337eb606afb2731edc522a9692"},"ros-humble-moveit-ros-visualization-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674556195938,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"93681d56e067859d7a0f2a335a970e2a","name":"ros-humble-moveit-ros-visualization","requires":[],"size":1120904,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"510752c2c76ad78a8e4f698115b6e30955f200fb613c93203a750a77608f1a11"},"ros-humble-moveit-ros-visualization-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675727496015,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3e76a04b8a0c84244dfabe11ce3c1036","name":"ros-humble-moveit-ros-visualization","requires":[],"size":1116465,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"171fa97e47f165b2c51a64ad98069276410ed7e33961d48de8c1ad8c710b0d52"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674556629156,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d842bf2b99eca22234cccefd443d63d2","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":229931,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65b528dbf49d8fffe0b08a62b3c70ce97759ea6044cdbbe287821e1b4c79df28"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726973061,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8ab589fee733fe7622c4b0281aa62b5b","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":231241,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96031791f8e5a174a06d05a7708f54b2d1fe00e25881efa168ec44fad9c8d248"},"ros-humble-moveit-servo-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-gripper-controllers","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670841755015,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"84c0a715fcfda6b0b7a0a67a708f8710","name":"ros-humble-moveit-servo","requires":[],"size":1127388,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a0d450b66886c0cc3805f25110ea9d3079ba19bfcf89b4b899410e93a2adba2"},"ros-humble-moveit-servo-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-gripper-controllers","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675727253553,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62361acd552b45f45e234b612b2035aa","name":"ros-humble-moveit-servo","requires":[],"size":1122001,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"029aa2afc0546f41d5ec6cab7af8776bb0fda4a48a812286a9538b98bd129677"},"ros-humble-rosbag2-0.15.3-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1670966861248,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"130bc41b35c74d9f34029f07d400c9a1","name":"ros-humble-rosbag2","requires":[],"size":11650,"version":"0.15.3","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f78396f4800981e164602c361ededb34f393021652ad8801118b9fcfd0ff82a1"},"ros-humble-rosbag2-0.15.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675725718974,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"be4e6337b644d3b34b6c73990e176085","name":"ros-humble-rosbag2","requires":[],"size":11704,"version":"0.15.4","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15c8e6c1ec7cc9ab4b150cc2d447e10c92ffbdb20117b9b581573936d3e258b2"},"ros-humble-moveit-ros-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674556641444,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5a697f4eade596834b882e236fec6803","name":"ros-humble-moveit-ros","requires":[],"size":13762,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23c78ae49bfc658eea6a6a17f8a5d9ef289a5daf4300ba619b36a998916b0ca3"},"ros-humble-moveit-ros-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675727960332,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ce1439edebc95a89ce7c54804b772262","name":"ros-humble-moveit-ros","requires":[],"size":13741,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ad94b99f03d9ab48f4d1eb68d30efce88ae26513f65c194a78d4b1f9c97943c"},"ros-humble-rqt-bag-plugins-1.1.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674555664737,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e53d2c94f79e0f9bf5d35dbfeca8727b","name":"ros-humble-rqt-bag-plugins","requires":[],"size":47193,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc6c8f23e820f9eca06c79d6740eddd918306b83b2e2e1bc02fa3b0f78df2f53"},"ros-humble-rqt-bag-plugins-1.1.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726304259,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"869ff4eec305983098425a2428a70379","name":"ros-humble-rqt-bag-plugins","requires":[],"size":46188,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bc55ea80d114099935634fc83d60a7d83f72386ec6ae273016c95709b4d5d49"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310hf0de9e4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hf0de9e4_2","timestamp":1674558394368,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a4b971f4023765339583b8b099bbdb64","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":521777,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"305645cf0fd3641310c45cb9946c4f36c65a2d6ccd8fbf0d258267b54b76e95d"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310hf0de9e4_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf0de9e4_3","timestamp":1675728126315,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b55a18fee40074061433c493723a0fb4","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":519689,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c12431c01232c7a4f1f11275fd581b8b806a465e53ffae9d7e2e30c3d15ecd0b"},"ros-humble-ros-base-0.10.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1672694202824,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da2db79e1f8f427e241b17bf89ac8c57","name":"ros-humble-ros-base","requires":[],"size":12738,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd4bddc26ea3d782a3a572c82805f98adab5823ea617a909875277b76cb92721"},"ros-humble-ros-base-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726315905,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b342a079667ae697942fafc43c19cad","name":"ros-humble-ros-base","requires":[],"size":12732,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6a821ad2cbbb7d9343bbacd32e63fbf141cec8df0a73cf62451c22a450fc4b2"},"ros-humble-moveit-setup-framework-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674556800603,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41731deea79ec6d8d762df24aa1eb681","name":"ros-humble-moveit-setup-framework","requires":[],"size":272532,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8aa8e69832fe43c6a519d336a968b9c53b150fff5edf8847827792f0fc07965f"},"ros-humble-moveit-setup-framework-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675728110076,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"daf3fd8a38f5bc3605625698ce0f0c3d","name":"ros-humble-moveit-setup-framework","requires":[],"size":272993,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"038331168946bf2a7071ffa19d926670b5a004535a33d3c04d1ebbf92bd82e6e"},"ros-humble-simulation-0.10.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674558889403,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6d6d46a4a9880d03e12a6ad56f2ab5de","name":"ros-humble-simulation","requires":[],"size":14015,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b0b8e1f901a0f1f4012b84993f29d352e2bb3342d3fd06d18a497179edaa2c6"},"ros-humble-simulation-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726981007,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6304a4abb446e217eee2999dbe9b4881","name":"ros-humble-simulation","requires":[],"size":13975,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90346c3ca0247b8f9ead31107e946772f4babfe695c7ead0f335738871b732bf"},"ros-humble-perception-0.10.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1673120027499,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"91c693e61d2859f56bbbc14dd45ab443","name":"ros-humble-perception","requires":[],"size":14101,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84b5e2b445b9cfbe984f2eaa5e89d087cb5ce2c0c89d7831e255ddaf4ba9de86"},"ros-humble-perception-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726983360,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ca372428a8c30cb26a40ba80a3fc3d2b","name":"ros-humble-perception","requires":[],"size":14101,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22088bcc6e226b51616d2e7daa515dd5cbafde869889dace72f188c2bb8f0ff3"},"ros-humble-moveit-planners-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674558900003,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4a37c0c244ec65241cf098e891bbce22","name":"ros-humble-moveit-planners","requires":[],"size":12591,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7a5587af5c5e785d6c317e1cc2cfe0c82be715af7a70aec4efff53fe34a5bc8"},"ros-humble-moveit-planners-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675728552029,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f4109ec2b4cae0a39f03dfc77ee7972c","name":"ros-humble-moveit-planners","requires":[],"size":12565,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8eec42a7fc3531b3e55164ca546c1815bd8e770389eacc4efbe7fb0c95de6eb8"},"ros-humble-rqt-common-plugins-1.2.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674557807774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0290818e34905143038e9f6aab065540","name":"ros-humble-rqt-common-plugins","requires":[],"size":13752,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e865d79852d52643522dd74c286c40b81dd7d7adea5ca5e8863c723ca723cec"},"ros-humble-rqt-common-plugins-1.2.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675726970824,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"40cdf71d1017e03a8d71e6ad794221b6","name":"ros-humble-rqt-common-plugins","requires":[],"size":13730,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba465465f1b70edd68541425d220b13c8d1a1a2d2b9d001b21c0c4fedda5a815"},"ros-humble-moveit-setup-controllers-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674558404284,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c63b41e2de35fff833488faf7567ab1d","name":"ros-humble-moveit-setup-controllers","requires":[],"size":242383,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feb829f38190019655da404ccb681b72b150c97a24d63d3c299d92b084132459"},"ros-humble-moveit-setup-controllers-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675728750480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8062b7d02d4df603d5992c41bfe7e22b","name":"ros-humble-moveit-setup-controllers","requires":[],"size":242316,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0f35ef51a49eafd596a8598feede0e47b6929a4c80907a5d96e46167d43d16c"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674558377137,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0db2fb364af3b679c76a26cbbd2e8f27","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":116898,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be94b2816c7d2bb7c28213c65c196357467efa3aa8b8e751c4f7c0be3343ed9e"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675728729665,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"04189134c3f62486e4a9a017ac6fa698","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":116843,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1f09ef32d4df72228aebc053b95161fa1fb30a3a9d77ff563ff339297ab046a"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674558458785,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e30ed4768cf87caa351950ae6c4c0fa2","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":88241,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5e0f1d838bd125a4188a27b901929703a0d1390f77575d0922656920b820967"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675728741526,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"75376e2488db75a49e8b203ae47c06fd","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":88030,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61f8ca8e57e718ecf80adfac50aa0da84f4843627e87677712aa24cbba9c7875"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674558442450,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"caf7d8a0e8f2775b2703ff415d4be019","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":452141,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9653379093204fd380a928abbaf063ad8ec838eb95bd3215bd0a3a9f3308d4d"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675728792902,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1b5ee808682d39bf6fdf76f177817bfa","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":451626,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c97964e2727319b944f4a10e8b876c38850946db50e190a54d7b8a415d5c703"},"ros-humble-desktop-0.10.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-control","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-tlsf","ros-humble-tlsf-cpp","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674558241515,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d5be1cbc943d3acaeb83c390acb6e81a","name":"ros-humble-desktop","requires":[],"size":15683,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d11a78c90ee23e26a23e11c0988e69ccc66264f26746e50644c2d2eba5f0320f"},"ros-humble-desktop-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-control","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-tlsf","ros-humble-tlsf-cpp","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675727955728,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"00686b9e6020e88ee5d00f0169207d1f","name":"ros-humble-desktop","requires":[],"size":15676,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c7d4727e67731b95044a3952aeb9ebf9cba04f2589e217b9dbdfe75f625d699"},"ros-humble-desktop-full-0.10.0-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h010ba66_2","timestamp":1674559539901,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"72932ee7ea67e0a8cc59f696d16a9ebb","name":"ros-humble-desktop-full","requires":[],"size":15464,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad3d1a8cd41488fe5b6200c8a97d9f6aef43c602d39678bf0073d3a779cfa78a"},"ros-humble-desktop-full-0.10.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1675728575689,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c559207cc96aec9b4959337f434582b7","name":"ros-humble-desktop-full","requires":[],"size":15435,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76a8fcb647a6c7e44a95b5c1982757a5849d3f87d2225795bdf9152f3bc7a94a"},"ros-humble-moveit-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674559520927,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"68aafee4c4f6c6ca2c42960c48403296","name":"ros-humble-moveit","requires":[],"size":14132,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3f463855319af30bb0ee640270b7cb939d26ca029f138d9aba24286b6e886bf"},"ros-humble-moveit-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675730002153,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"00b9b31117ddedf11eb25d42b7607671","name":"ros-humble-moveit","requires":[],"size":14072,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a803f036f063537228d5d15abef0be6e02b4c4a5bd256e2155472813151ef25b"},"ros-humble-moveit-setup-assistant-2.5.4-py310h010ba66_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_2","timestamp":1674559059942,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b7f8e6817e25bad88a5ca1fd655dbe3","name":"ros-humble-moveit-setup-assistant","requires":[],"size":410609,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28b100700577c565797166c8b75ffa8c34b3a3837f96955bbe44ea21748422bb"},"ros-humble-moveit-setup-assistant-2.5.4-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h010ba66_3","timestamp":1675729477084,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"99a7ed8b0009ee6db87338cbaf6db29c","name":"ros-humble-moveit-setup-assistant","requires":[],"size":413445,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08ebe8fec659b13801d928474ba296c8e31ee50f82627e74264a32e6fe31e977"},"ros-humble-gazebo-ros-pkgs-3.7.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1677543558744,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"19d5707015b6dbe0ff8414560f13ac7e","name":"ros-humble-gazebo-ros-pkgs","requires":[],"size":13742,"version":"3.7.0","binstar":{"package_id":"63967fd44f66fd116f9dea7d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84063a36b85e701de91a53961b5df2e2dcc036aa556d17cd5963f799636b8a72"},"ros-humble-velodyne-driver-2.3.0-py310h9cde244_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libpcap >=1.10.4,<1.11.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h9cde244_3","timestamp":1684266198990,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dcd9282864527bed536dd657dc7c115d","name":"ros-humble-velodyne-driver","requires":[],"size":146470,"version":"2.3.0","binstar":{"package_id":"6398ee70d0e8c095e280389f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf93f06260c913be740de166aca630dfb0e8a56ebaa1b12efc164a9be64eb80b"},"ros-humble-velodyne-msgs-2.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684265725850,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7c330fcc474f9fae181e0599fb354163","name":"ros-humble-velodyne-msgs","requires":[],"size":76948,"version":"2.3.0","binstar":{"package_id":"6398ee7268b198bb95911256","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0aadaa1a75d6d838321761cb36118bd14cd3d6d162b09a41bd6a8bab79b5e90f"},"ros-humble-velodyne-pointcloud-2.3.0-py310h8ea06c7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h8ea06c7_3","timestamp":1684266330495,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b60a4b549f84c4f7df5d265914c41097","name":"ros-humble-velodyne-pointcloud","requires":[],"size":640275,"version":"2.3.0","binstar":{"package_id":"6398ee732ff78d332e4bad75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf2270fb7a4c21d9a61adb1fae7ec8d52d29b93aa055c19d79cff67ef892f519"},"ros-humble-velodyne-laserscan-2.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684265762841,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"80d2de176a8247549c93f2277140feea","name":"ros-humble-velodyne-laserscan","requires":[],"size":166273,"version":"2.3.0","binstar":{"package_id":"6398ee752ff78d332e4bae1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71d8fc8cd4159eaba9d98f198da50ead19a5f312fb99ebd745108117ef424a4a"},"ros-humble-velodyne-2.3.0-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-velodyne-driver","ros-humble-velodyne-laserscan","ros-humble-velodyne-msgs","ros-humble-velodyne-pointcloud","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684266799703,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6d1e4cb89fb72754bc6a0a0c483e98ff","name":"ros-humble-velodyne","requires":[],"size":18928,"version":"2.3.0","binstar":{"package_id":"6398ef7dcd65eb0e142209a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da2879d9cf8d2fb72319470b4999eb64063e1f312b343d575a49b4bc1f7ddb65"},"ros-noetic-eigenpy-2.8.1-h6a33a49_20.tar.bz2":{"build_number":20,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["eigenpy 2.8.1*"],"build":"h6a33a49_20","timestamp":1674474265185,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2205178a78b515eefd976ef931bb822c","name":"ros-noetic-eigenpy","requires":[],"size":3190,"version":"2.8.1","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f9312d1acc2dca8e9eaf10f9b6f44337178896e4bd5a908c1a6c70b136d5668"},"ros-noetic-eigenpy-3.1.0-h6a33a49_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h6a33a49_21","build_number":21,"depends":["eigenpy 3.1.0*"],"platform":"linux","timestamp":1706505758510,"md5":"b2013c163cfe519b363ba0f6c6e1b4ae","name":"ros-noetic-eigenpy","requires":[],"size":3532,"version":"3.1.0","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1813346e221abec35dec03e049613a469aa7629652dc804a43c366fd304279f3"},"ros-noetic-eigenpy-3.1.0-h0664494_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h0664494_21","build_number":21,"depends":["eigenpy 3.1.0*"],"platform":"linux","timestamp":1706523725054,"md5":"90e9f9bf258c05cea9740aeaca99f833","name":"ros-noetic-eigenpy","requires":[],"size":3538,"version":"3.1.0","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caaa983b7409955d459d9d393fdf999fbfd5fcb7073f529728e040a8e759f7ef"},"ros-distro-mutex-0.4.0-noetic.tar.bz2":{"constrains":["boost-cpp 1.78.*","pcl 1.12.*","gazebo 11.*","ogre 1.10.12*","libpqxx 6.*"],"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":[],"build":"noetic","timestamp":1674474235417,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7c41c8f454ea5ebf3c548eb1290aba20","name":"ros-distro-mutex","requires":[],"size":3385,"version":"0.4.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12abe68773cc835cc4760ba51daa5611c5fbefa75da447f961a273a9d8a5d4ad"},"ros-distro-mutex-0.5.0-noetic.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"noetic","build_number":4,"constrains":["gazebo 11.*","ogre 1.10.12*","libpqxx 7.8.*"],"depends":[],"license":"BSD-3-Clause","platform":"linux","timestamp":1706494454150,"md5":"fb5424af3af6f2db290ed3fda94b6adb","name":"ros-distro-mutex","requires":[],"size":3742,"version":"0.5.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff79dfac201214d3f1c4cb59d1dbb6bb1bdd97ba825afddd8482e82637aa261b"},"ros-noetic-ruckig-0.9.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674474782571,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8531ac7e13d71f6893e077fe71effb0d","name":"ros-noetic-ruckig","requires":[],"size":95052,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b74e99138c54e596501d404047895cb1b0a8ef108ba56a4ae384cd706610291d"},"ros-noetic-ompl-1.6.0-py39h954e546_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h954e546_9","timestamp":1674475586991,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"338fcc9467e7e5ad751142cea35561d5","name":"ros-noetic-ompl","requires":[],"size":2722586,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"513b0a8174fc5fe6adb5ccb6c8b799ff0a85dd9abc61b66f11daefc7db7fbf90"},"ros-noetic-catkin-0.8.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","cmake","empy","gmock","gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","nose","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","setuptools"],"build":"py39he6bf450_9","timestamp":1674474661844,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ed18dca4efc1e37c2371db23f58b420e","name":"ros-noetic-catkin","requires":[],"size":175064,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9113eaa0002f00b01b01cc8b9c66713ecb6c4c8de9e299e54d65fdc03bcf9bc"},"ros-noetic-roslint-0.12.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476135125,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"58ab152f9246ec432a94eafb8520d6a6","name":"ros-noetic-roslint","requires":[],"size":251838,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93aaa033cb150e441b5ebc089551b7492908a245f7ddf050bc0adfa2e22be47d"},"ros-noetic-roslint-0.12.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-aarch64","timestamp":1698187929896,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"3102b0af315ce859999834abae9ab509","name":"ros-noetic-roslint","requires":[],"size":240456,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52166b76a3b0af3b0e6a9ed04aa577a44d109843a963c480b3582593dba4f844"},"ros-noetic-rosclean-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39he6bf450_9","timestamp":1674476028985,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a85965b383da77ad6859f2c339ff00b","name":"ros-noetic-rosclean","requires":[],"size":22668,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d94c3fc8c085a52b721c2c4c46c4279a517964aa9f37733a8efeb6f8805d95d"},"ros-noetic-media-export-0.3.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476186330,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"73ba3c5565e5105da38bc0059a3e1a0b","name":"ros-noetic-media-export","requires":[],"size":9982,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e09213059ccfdb39f0f867b0dcc8523f88ebb1329e5fa035d2f73ffde1d354c9"},"ros-noetic-rosgraph-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39he6bf450_9","timestamp":1674475973037,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"347ded577188f1e0a92eab2b92d1f0bd","name":"ros-noetic-rosgraph","requires":[],"size":85066,"version":"1.15.15","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"515a9ccad90d8467216bc04c3a054f21c734c6d3fe8211ed8b8d8971934f3d70"},"ros-noetic-urdf-parser-plugin-1.13.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","urdfdom_headers"],"build":"py39he6bf450_9","timestamp":1674476080749,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"89c648a253f7ae85551013fc898dc157","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":11334,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fd41e0c2d58bcff0d7b1ab5c0a2caa0e87fd4089149018c78769f9cdcf067ae"},"ros-noetic-ros-environment-1.3.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476095148,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4faf3cfd2e4052c0836528b2c0072734","name":"ros-noetic-ros-environment","requires":[],"size":16638,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87d6a4fe214a28c7b54b7b1f7c7e80351216f4e8f8a04aa995da6541ec373369"},"ros-noetic-rosmake-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","rospkg"],"build":"py39he6bf450_9","timestamp":1674476206719,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"05fabba24d03aa31c510e1ee76436d28","name":"ros-noetic-rosmake","requires":[],"size":64375,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"703ddedcd736cde5c4e627622b4a389f5f6fa359fd307674058883322e66a584"},"ros-noetic-genmsg-0.6.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39he6bf450_9","timestamp":1674476040975,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"afe18440381ae33c42c931203eaf1585","name":"ros-noetic-genmsg","requires":[],"size":62422,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c51c97cd4959dc69adfa912dccdbaa52e0d37b4fa72efe3b5b82c986576e1f0e"},"ros-noetic-cpp-common-0.7.2-py39h60f363a_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h60f363a_9","timestamp":1674475984567,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3f9009285326869aa632c4eb7d5fe741","name":"ros-noetic-cpp-common","requires":[],"size":32793,"version":"0.7.2","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07601b78e024045cb6380d7b2e318ca70dc57ab339261acae9b0cca8b2d5236d"},"ros-noetic-cmake-modules-0.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476146553,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"82a37ddd7119db0f3112e00981b84597","name":"ros-noetic-cmake-modules","requires":[],"size":22656,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"951aeb93ff86aa56e99393cb29a15793c60cf7ee25aa53c80303960738f2bf33"},"ros-noetic-octomap-1.9.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39he6bf450_9","timestamp":1674476249172,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c1e55636ef130db68066789f74380a66","name":"ros-noetic-octomap","requires":[],"size":475834,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8e206b3f138b58d541b2a3cc4019509aef2438f648c07ecd051c437ad2fcc63"},"ros-noetic-rosbag-migration-rule-1.0.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674475961009,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1a4f9ae89430f36cfc6b4c9c4febb889","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":9994,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1fa1e17f9ecada0a7ae07a6bd78bf066db59e4881942b1e2c01fbe1f79d5df8"},"ros-noetic-random-numbers-0.3.2-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hb6bd954_9","timestamp":1674476110968,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5ef18494662e9e008ab54965aad3783d","name":"ros-noetic-random-numbers","requires":[],"size":38958,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab4dd0bc731b95ab98dc1af24192da2ffd2577d2e17934d3f6c9ee05f200f30b"},"ros-noetic-moveit-resources-panda-description-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476016024,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5c77e0affe8f4d9f8f8cb9a02ebbe557","name":"ros-noetic-moveit-resources-panda-description","requires":[],"size":3801658,"version":"0.8.2","binstar":{"package_id":"63c9c85f0273ee116afd3b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d39bbd08bc0827bbbf39a83651493788e3cb5bdd2aafc4a850fbae1fd6096a2"},"ros-noetic-pybind11-catkin-2.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476305954,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"58cae26418d94a211c336fec1746795f","name":"ros-noetic-pybind11-catkin","requires":[],"size":122761,"version":"2.5.0","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d603f5596061a3d23d4edc3721eb35e27c1d3ffe3f821ad94ca2bcce0fcc487e"},"ros-noetic-moveit-resources-fanuc-description-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476095086,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"badc06a2e8ec1acbe8ce94ee38efecf6","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":186622,"version":"0.8.2","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f9665fa2de780cb4b764fbb540e08ca9b89794adcccc08ea1fa454f3dd31f1a"},"ros-noetic-gazebo-dev-2.9.2-py39hdd7c943_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gazebo >=11.12.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","tbb >=2021.7.0"],"build":"py39hdd7c943_9","timestamp":1674476291717,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0e09f980a689e6531a2f79fbf03eb8cc","name":"ros-noetic-gazebo-dev","requires":[],"size":13513,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b61580447f5797a6be54fc1dc2a2ee4b642a69fe141fab482fb4bb9fb8ac6aee"},"ros-noetic-smclib-1.8.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476044277,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e812c6a6246bde8fb78931fe0c75709","name":"ros-noetic-smclib","requires":[],"size":20888,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1341c45b4302754e9ce4ab0d0b37c5b8d7b8bb95b2bdb5cca0606c3b85f8ee43"},"ros-noetic-moveit-resources-pr2-description-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674475969018,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3bd489caac96c8622d92c7cc822e1a08","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25914614,"version":"0.8.2","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99c8a4b87fef98970cafaf486f4751d8e6bce41eb24cd75645263ffe9230f95e"},"ros-noetic-smach-2.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476154349,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c29c21128ff1f5306362eb66711d15da","name":"ros-noetic-smach","requires":[],"size":66913,"version":"2.5.0","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5adada6c2a48dbeba32a6e4dd2dbbd369d04b62caf214c3678cf02414e0a7617"},"ros-noetic-gl-dependency-1.1.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt","pyqt-builder","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476228774,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3553267150e11ccd1fc0062be05e373e","name":"ros-noetic-gl-dependency","requires":[],"size":10835,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb368c0aa173e824168ff6be7b98900e25a858b845db3153ddd8ac4f411726d2"},"ros-noetic-openslam-gmapping-0.2.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476100304,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4c20517ee4b13082d0b9825199c0c5e4","name":"ros-noetic-openslam-gmapping","requires":[],"size":215161,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e00c3d741543c8f9d870f60f9537d1c4f5247bdc563c3537e6ad8049344b7d1"},"ros-noetic-rosboost-cfg-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674475967521,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"72491952c71b73e47d4d57aee2051efa","name":"ros-noetic-rosboost-cfg","requires":[],"size":27722,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e20f446c31237dfad118ab7931eee24e7a865c9ef2cafe4a71b957df39d656ff"},"ros-noetic-qwt-dependency-1.1.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476017428,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a446f035f1a8fee6bd99b3f62801a73e","name":"ros-noetic-qwt-dependency","requires":[],"size":10010,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55ce94acee8d7ba11dd1df27180526265bf021b73abc4bd253761f341b0ac6c5"},"ros-noetic-code-coverage-0.4.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["coverage","lcov","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476360369,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0e6ffa139848587e25f3a0c9f9d40ce3","name":"ros-noetic-code-coverage","requires":[],"size":13237,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"593683baeb9e0b96a8424b78e5ff0edaf065daebf8a62366416675147a31208e"},"ros-noetic-libg2o-2020.5.3-py39h7157b99_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","suitesparse >=5.10.1,<6.0a0","xorg-libx11","xorg-libxext"],"build":"py39h7157b99_9","timestamp":1674594567535,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4fe293d0e24da64de08640b83604c480","name":"ros-noetic-libg2o","requires":[],"size":1804069,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7687ee2091ede99c415f3b26c23855cf3a050423e3b9ec68e1b6155d1b49c528"},"ros-noetic-jackal-simulator-0.4.0-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-gazebo"],"build":"py39hfaf8bd9_3","timestamp":1674599255555,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0f06232c7a7366d01902379660531911","name":"ros-noetic-jackal-simulator","requires":[],"size":11410,"version":"0.4.0","binstar":{"package_id":"63c9cb4668b198bb95958d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4290b6af0c5190e4f56222183e64d823adfb9e58057415480e02770fc7594c13"},"ros-noetic-genpy-0.6.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674476846728,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dcf1d74252616ac3bf4365798edeb9aa","name":"ros-noetic-genpy","requires":[],"size":94593,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a515140949f87d9046e0208fcfbd0a4c4f7849f1043be5c14722526eef4ce206"},"ros-noetic-geneus-3.0.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674477011745,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"87cd9aa68f36b6deb68c765b3241eb2c","name":"ros-noetic-geneus","requires":[],"size":52592,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51e5691113d7401987e73bde8a28aa4a4b39ebb144d1298383fd677792eb0b5b"},"ros-noetic-rostime-0.7.2-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common"],"build":"py39h562df21_9","timestamp":1674476787840,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2431aee9fca2c24be7454b934915355b","name":"ros-noetic-rostime","requires":[],"size":54476,"version":"0.7.2","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ff9689a37d714d0766bbda7749379bd54d24e5682d6438625665cd28770e8cd"},"ros-noetic-gennodejs-2.0.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674476901640,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d219b5e4289d9fe251fb623bfc06a401","name":"ros-noetic-gennodejs","requires":[],"size":47878,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6deaae130a183e0385835d6f7f628494bbf324ca55815bfb6b2f95d7e711e84"},"ros-noetic-genlisp-0.4.18-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674476956674,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e8333ee02e1db935e37a84dd57fcd924","name":"ros-noetic-genlisp","requires":[],"size":48213,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ca679c505d10f761679d1f479ba8f15cf6da3fbc09bbf380053a7b066e73068"},"ros-noetic-rospack-2.6.2-py39ha9774d9_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pkg-config","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39ha9774d9_9","timestamp":1674476860995,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7204daa1c4164d3a98aef6118955528a","name":"ros-noetic-rospack","requires":[],"size":134054,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31154308916fbd9c8a5353b2599c007fd8ca30e3c1ed345600ae1d3a9be80513"},"ros-noetic-rosparam-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39he6bf450_9","timestamp":1674476986239,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6de32f9d1bdf4e386c8a372a7f93243a","name":"ros-noetic-rosparam","requires":[],"size":33055,"version":"1.15.15","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f870ce4e54614b7e42907ef62676b5a8c1e3a29454904822d6f69f89ca18be1"},"ros-noetic-rosmaster-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["defusedxml","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39he6bf450_9","timestamp":1674477043450,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f8afaf1a1de8d8a6bd5b6f57b07d2266","name":"ros-noetic-rosmaster","requires":[],"size":75095,"version":"1.15.15","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a33750b260b0055217dc94f824c37a1b54b43dbf14ba3902d4c8e0116eff40c"},"ros-noetic-roslang-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674476917598,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3124b1c318c7a5b3c2c1cb62c0e6dc23","name":"ros-noetic-roslang","requires":[],"size":10871,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70f1ab921929339b6bef4e7546e165ad3d20035f4cd8008a1b653ad7dde80b1d"},"ros-noetic-gencpp-0.7.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39he6bf450_9","timestamp":1674476748283,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"87ebf478e406672259290516823a8fc2","name":"ros-noetic-gencpp","requires":[],"size":24911,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0ccf7dd82b8d9955b604423faff35cffcc11e141cfc618f08d903b9781c8482"},"ros-noetic-rosdoc-lite-0.2.11-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["catkin_pkg","doxygen","graphviz","kitchen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","rospkg","sphinx"],"subdir":"linux-aarch64","timestamp":1698187937734,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"c30b3dc8e8baf1325d3ac530c114b9e5","name":"ros-noetic-rosdoc-lite","requires":[],"size":86417,"version":"0.2.11","binstar":{"package_id":"63c9cd30dbdf733521f07073","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b5b8726a4afe156053284efaaab8e3a210ddc0c701207fc425be0f01a9ea81f"},"ros-noetic-eigen-stl-containers-0.1.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674476907140,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7c4d400ad529a217b8809ab7a1d35653","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12125,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8459362dc405d1acbbc2252c8eda10e128aec15f973d1bea0741c7fbbe2d5126"},"ros-noetic-xmlrpcpp-1.15.15-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h562df21_9","timestamp":1674478001692,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3d396f43568c9957ae116f9fff337553","name":"ros-noetic-xmlrpcpp","requires":[],"size":80437,"version":"1.15.15","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d7ec0e36e7983c3617ef2198db9a9500bc468831f452315b8defd4332eaadea"},"ros-noetic-roscpp-traits-0.7.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39he6bf450_9","timestamp":1674477765731,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9761b2e405a6a9c5593cbff94dacc215","name":"ros-noetic-roscpp-traits","requires":[],"size":16034,"version":"0.7.2","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd10f004032dc7819fbc7868f983698f03524789cca293187b3c39b4ee9bee41"},"ros-noetic-message-generation-0.4.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy"],"build":"py39he6bf450_9","timestamp":1674477820229,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"112ac3838f6b12ba7cdde836b528c1f1","name":"ros-noetic-message-generation","requires":[],"size":10337,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"632bc083202128c4895f081bff5a3645631db66621d885c1ef7662764089d7e5"},"ros-noetic-rosbash-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"build":"py39he6bf450_9","timestamp":1674478066584,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f8d0be21cdd0fd0a39c5c98ac3057787","name":"ros-noetic-rosbash","requires":[],"size":26629,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e556768e1277f49fe7b88df4f35387f777adc016e0ee2f240d8ba3ccc6dbb8e0"},"ros-noetic-roslib-1.15.8-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"build":"py39h562df21_9","timestamp":1674477909980,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9431a9fafe118b6df358e0e10442e062","name":"ros-noetic-roslib","requires":[],"size":160447,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d958495806ceec8e71f754039edf6177224a4e673635f3a597dc384b23071c44"},"ros-noetic-rosunit-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39he6bf450_9","timestamp":1674478558480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e0c9c0dd5a0a92542171b86a9e7e4f6e","name":"ros-noetic-rosunit","requires":[],"size":91985,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f44b7f7918eb381e15ccd28524bc57be0108677e305f7d89dc3a36ec3849b02"},"ros-noetic-roscpp-serialization-0.7.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39he6bf450_9","timestamp":1674478494141,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7850989ceb1a81420f5088c0b4b4e932","name":"ros-noetic-roscpp-serialization","requires":[],"size":19904,"version":"0.7.2","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"515c3668f0d30477c5f9a69a30574066707a6f9998d73799e9c9024ddf379789"},"ros-noetic-roscreate-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39he6bf450_9","timestamp":1674478613039,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"886dcd0954580b81af3d9bb4dee7be3a","name":"ros-noetic-roscreate","requires":[],"size":21947,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c9aec1a2182d4ef7928bd04a49f27a0f123e5532c36c6cf2068330dc3e2b6f2"},"ros-noetic-roscpp-core-0.7.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39he6bf450_9","timestamp":1674479232271,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4b209f2682018cbf4552fb566b7fc0b4","name":"ros-noetic-roscpp-core","requires":[],"size":7144,"version":"0.7.2","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b75bd05fdd6ec464a7306367a5a18ce6b46f5ebbdf2fd3a9ce637f47ed552768"},"ros-noetic-roslz4-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lz4","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674479106906,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"206b3f43bfc56a7c151d187c77404206","name":"ros-noetic-roslz4","requires":[],"size":26506,"version":"1.15.15","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a518ba63da5ecbad594af8a7fefe08edb475f1b99451e2d456f755119262a17"},"ros-noetic-message-runtime-0.4.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-genpy","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39he6bf450_9","timestamp":1674479017421,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ad78a28a3f93879a31012610b993652b","name":"ros-noetic-message-runtime","requires":[],"size":10425,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55796fb88c6c77453f729bed5ffbf2544d7b8792927c88b867a710e0fec261a3"},"ros-noetic-angles-1.9.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674479169782,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f11baedeacb064276d5d3a8bb52f3f57","name":"ros-noetic-angles","requires":[],"size":21101,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41d0f81f3e343722739c599856d03cd6def4f50a939cd70a00aca2a78f2929a3"},"ros-noetic-rosbuild-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-message-generation","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674479731371,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5200af05a2c553f640feb17c62cf907","name":"ros-noetic-rosbuild","requires":[],"size":35488,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1769f06e4bc776edc33167dd43ea6e9c791ef1a280f8693c032a167b145e6f2c"},"ros-noetic-rosserial-msgs-0.9.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674594284799,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e469bee4f34d491e105fb53c4d924095","name":"ros-noetic-rosserial-msgs","requires":[],"size":39755,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8087aed244fca5cffba6115b9d55fa3450f47ed870df6650332af99b3282968e"},"ros-noetic-std-msgs-0.5.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674479661898,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"23f0fdff97b29636678586021cc4b564","name":"ros-noetic-std-msgs","requires":[],"size":93034,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a291ca2f2b62d4ada29569c083581971e1bb6c5450e38dcd59be02b0eacbcc77"},"ros-noetic-std-srvs-1.11.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674479797079,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6708ee635906254298d51b55c23226ed","name":"ros-noetic-std-srvs","requires":[],"size":33482,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86630e1da853ff0e042bec3c1806d6abaab1c715212146c4ee6d32b797e7d382"},"ros-noetic-rosbridge-msgs-0.11.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480194994,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ffd1055306ce52ea7d9e00d1c3850b30","name":"ros-noetic-rosbridge-msgs","requires":[],"size":28419,"version":"0.11.16","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59dbfad42197d39ebf53d5941d13234f75ca2b3f8a8e7f30c4cc1162015d2d08"},"ros-noetic-jackal-msgs-0.8.5-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hfaf8bd9_3","timestamp":1674480258723,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0c3cbdaa1d58e27bde8eae651a11fde6","name":"ros-noetic-jackal-msgs","requires":[],"size":38538,"version":"0.8.5","binstar":{"package_id":"63c9d2abdbdf733521f38072","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf68180912f5815e96b64b663a52b8ebc937d511f02e358050e52d5f8ab3ff88"},"ros-noetic-turtlebot3-msgs-1.0.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594394448,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a70948d5a925d3df0280f3f9cdba2c89","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":38040,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b6ae4224714f9608cd4f5538cb68ae762efc88420963ea2cdc8738029acb33f"},"ros-noetic-nmea-msgs-1.1.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594322554,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e7ba4d87cc11f561511c7dad45ab3fbe","name":"ros-noetic-nmea-msgs","requires":[],"size":56567,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb2bda9e47fe421e4e50d715f8cadd26b2d986a7fb73c29e748526de7ca2ddcb"},"ros-noetic-diagnostic-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480525365,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5615e7a3d135af8ec17f646dce25d8c","name":"ros-noetic-diagnostic-msgs","requires":[],"size":52234,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e05b4883014be51ff0271adc2f50fba4467926823b9dcaacd12e8a248fc9b40"},"ros-noetic-actionlib-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480456843,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4de6fdcc68c22e914165e0479eb75955","name":"ros-noetic-actionlib-msgs","requires":[],"size":44418,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2033feb64d67e29de81cb24037748cbf4bf0dfc16fc8ba191d712d94e4701b61"},"ros-noetic-geometry-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480387384,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"33b35839f686b2392a770ed3afeee941","name":"ros-noetic-geometry-msgs","requires":[],"size":110073,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"512624b8f23c27452a6002656efbd643743e6ff2d6537e4e30c8a89024755e15"},"ros-noetic-rosconsole-1.14.3-py39h1866a56_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["apr","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","log4cxx >=0.11.0,<0.11.1.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"build":"py39h1866a56_9","timestamp":1674480302015,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8c940c3d5938a810bddb813ccaf2cda7","name":"ros-noetic-rosconsole","requires":[],"size":209760,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14152384f8d29900b3d77c161f22b5855983fac03eed096e498f97ee48b31737"},"ros-noetic-rosgraph-msgs-1.11.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480180764,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c119814154e3c0b5a3e5eb8b44b9a333","name":"ros-noetic-rosgraph-msgs","requires":[],"size":42821,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55c44420af50571a3dfd89e618b40f17f7acc2393ebe5de4a17f4e2291b3eb6f"},"ros-noetic-mk-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"build":"py39he6bf450_9","timestamp":1674480376598,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0306e8dfc381963dd4b1e7ec82e2bdc9","name":"ros-noetic-mk","requires":[],"size":16602,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdb43450a97fd7c38909704c2fdb2c634337434fecda74711a212ce48bf4ce0b"},"ros-noetic-bond-1.8.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480308704,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e731dabf0d49345b6bac2f10956a1c83","name":"ros-noetic-bond","requires":[],"size":30406,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a546cb355cfc4882375d979beb27c5d91b7a8352fba1c4cd5f86c94df476af89"},"ros-noetic-smach-msgs-2.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480511641,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"552b02d71a5363ea6d961b18b87aead2","name":"ros-noetic-smach-msgs","requires":[],"size":37823,"version":"2.5.0","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62f4efe874e87dff3424cde95a538a89fe2538d478dd2822af7a92ffd99dcfcf"},"ros-noetic-uuid-msgs-1.0.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480443509,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"53c88e682ed0955aa850a9d22c3fa7b0","name":"ros-noetic-uuid-msgs","requires":[],"size":21394,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e178202124b5a6413eba4b709b7b04faa351092706673d406e094ebf6545f6b"},"ros-noetic-radar-msgs-0.1.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39he6bf450_9","timestamp":1674481247532,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9bb26ca77e51864b0b6d761242b39595","name":"ros-noetic-radar-msgs","requires":[],"size":48594,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af5cd589c74258c1a8bff5ea47c39343fe177267b87a9c9fd2c9aeb5d2e68320"},"ros-noetic-mbf-abstract-core-0.4.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594409938,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5583ecb793d2ddd9cf3f93043d312733","name":"ros-noetic-mbf-abstract-core","requires":[],"size":14040,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57b181a1f55edab416474c4af5894669835fe514adcea8abf3ff393f5c0a773b"},"ros-noetic-octomap-msgs-0.3.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674481213884,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"523d92a73d704b92a33d45cd4131c8a1","name":"ros-noetic-octomap-msgs","requires":[],"size":50476,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1728f4b1196394ffccf827cfb6f9e67d75180525e2c0770d93235bb111257a2"},"ros-noetic-resource-retriever-1.12.7-py39h032dd1e_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libcurl >=7.87.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"build":"py39h032dd1e_9","timestamp":1674481007115,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8258638941f6bb81db7288e4f9e17c4d","name":"ros-noetic-resource-retriever","requires":[],"size":26423,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c669f787be8dc370780c078f1b186b2babda16e3a7d2cb1839e88ac794d5fd33"},"ros-noetic-trajectory-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosbag-migration-rule","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674481145856,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"326920bc3d35e17334f15cdca2616a5f","name":"ros-noetic-trajectory-msgs","requires":[],"size":48803,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d70204a4943297add45fa42ba2b79190009d2591eb9ec08f66bc47611c5fb32e"},"ros-noetic-visualization-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480914116,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b9f55caa1173f121c267b0396b23d0c3","name":"ros-noetic-visualization-msgs","requires":[],"size":125102,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"276b04b90e1e7d758367c1ccd8da4e760d9ca3128a15b53d17ca5911e24e8f95"},"ros-noetic-shape-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674481076153,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"488ce5037928fc81410b8bf553d148c1","name":"ros-noetic-shape-msgs","requires":[],"size":37642,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4140e2a1a57d87aa4f399f9b92bcad611a0ca6e65aeb51c2e9e220281f01475"},"ros-noetic-kdl-conversions-1.13.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs"],"build":"py39he6bf450_9","timestamp":1674481179511,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41820e6268870f424984f394f4d7140e","name":"ros-noetic-kdl-conversions","requires":[],"size":16090,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5b0f9295b8b7253fc72f225eec2c4bc9e26ae520bd3448c1b47afcf8bf47ca7"},"ros-noetic-qt-gui-py-common-0.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg"],"build":"py39he6bf450_9","timestamp":1674481104744,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b0cbf6bacfa872866d197f76f58522ee","name":"ros-noetic-qt-gui-py-common","requires":[],"size":29109,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf9b8b867eb1cf3cd56075d281eda8ef86d5410af2cb5ee41f98151e41d1b24d"},"ros-noetic-move-base-msgs-1.14.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674481252472,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2307d7cd52eff83c3f7b23cb73a42434","name":"ros-noetic-move-base-msgs","requires":[],"size":60897,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c79c288899938a1f7428f970964449c91cfff68bc6891c31fb4ff635fca0456"},"ros-noetic-qt-gui-0.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674480952248,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7cc61438cefd585ed0e3fa275eab0b05","name":"ros-noetic-qt-gui","requires":[],"size":175986,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a24ccc2748452f4d143e51a8e3fe41bfe07f40d60b8a4d91ac98ef3cba3c904"},"ros-noetic-eigen-conversions-1.13.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674481048406,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b38e46b101b6887ccc09469da66f37f2","name":"ros-noetic-eigen-conversions","requires":[],"size":19423,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6319e12b34e84d85634f450122b4bddec09dd6519e0bb25e8c0a2cd143912ffa"},"ros-noetic-qt-dotgraph-0.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pydot","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding"],"build":"py39he6bf450_9","timestamp":1674481101469,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e76b24834453e679862d988618416d18","name":"ros-noetic-qt-dotgraph","requires":[],"size":47112,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcf2593b94cc6ab145a9292fddc97154fd7a7b30e8c6e0c1db05f19c7520e784"},"ros-noetic-ros-1.15.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-mk","ros-noetic-rosbash","ros-noetic-rosboost-cfg","ros-noetic-rosbuild","ros-noetic-rosclean","ros-noetic-roscreate","ros-noetic-roslang","ros-noetic-roslib","ros-noetic-rosmake","ros-noetic-rosunit"],"build":"py39he6bf450_9","timestamp":1674480987373,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ba1965f88700b00f27be7fa88473d56c","name":"ros-noetic-ros","requires":[],"size":7716,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08a1e7cbb55ad05544d8c43367d56af376a772c75147acdac73e96c5cf6965c3"},"ros-noetic-franka-msgs-0.10.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594293826,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30ddc61b5b290becc6af0fd3531f0863","name":"ros-noetic-franka-msgs","requires":[],"size":128461,"version":"0.10.1","binstar":{"package_id":"63c9d4302e1172ba3668f511","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40718510706d61154daf1231aa5e96cd929df16f0b9df882eaf2a19c5d520f72"},"ros-noetic-roslisp-1.9.24-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","ros-noetic-rosgraph-msgs","ros-noetic-roslang","ros-noetic-rospack","ros-noetic-std-srvs","sbcl"],"build":"py39he6bf450_9","timestamp":1674480917034,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"df632d4a2290dd7d2fc0df3d8f64a3e3","name":"ros-noetic-roslisp","requires":[],"size":126465,"version":"1.9.24","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4552de38908729a7bec3a99a5fb475b96cd89984f95598e5b6b11016954df31"},"ros-noetic-geographic-msgs-0.5.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39he6bf450_9","timestamp":1674481179451,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d406b95c5b3bec865e25ad43cfa971bb","name":"ros-noetic-geographic-msgs","requires":[],"size":134425,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0b1934ba8a0a95a470d91a1a62a9920302363af356d779b07d42cab4c498da5"},"ros-noetic-tf2-msgs-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation"],"build":"py39he6bf450_9","timestamp":1674481244618,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bbc0dcfff8dbf46055a3725b6b1aa88b","name":"ros-noetic-tf2-msgs","requires":[],"size":76949,"version":"0.7.6","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5be1bb0298d199fea2e8c4eb370781ebc12835a0bda52294955c431eda010dd6"},"ros-noetic-pluginlib-1.13.0-py39ha9774d9_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39ha9774d9_9","timestamp":1674481167386,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"70adb0c95773f405b8ca5c49f1bcd3c4","name":"ros-noetic-pluginlib","requires":[],"size":24618,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35f32582dc24b7cfdbdd78f432433e2b2d531bbec2cacade5e36579c75582f47"},"ros-noetic-roscpp-1.15.15-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rosgraph-msgs","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39h562df21_9","timestamp":1674481096528,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a11d07395241586362d45308c31ab385","name":"ros-noetic-roscpp","requires":[],"size":652639,"version":"1.15.15","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"165830c53d3d89ed0690ffb2ff0b1d826fa160cfdca0f95e2d6c918ea9a3f0e8"},"ros-noetic-nav-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674481404956,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"400c40696e23250cf529d0b3a39baf4c","name":"ros-noetic-nav-msgs","requires":[],"size":115141,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e139f00ec1da739dd787d0b95724ff0e3fa94daafbc6c3bd0c6062bba31a325a"},"ros-noetic-rosconsole-bridge-0.5.4-py39h9d9f4ee_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"build":"py39h9d9f4ee_9","timestamp":1674481328205,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"520fcaf42e2d6b96fc33b49af363afff","name":"ros-noetic-rosconsole-bridge","requires":[],"size":19171,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"deb53861cd452a586c8626ab16a0f66a7c7f09e081637eb7cf932f6ab4e691c2"},"ros-noetic-tf2-0.7.6-py39h9d9f4ee_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rostime","ros-noetic-tf2-msgs"],"build":"py39h9d9f4ee_9","timestamp":1674481996772,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cf19031b91c77f660d1ea41def3f4e75","name":"ros-noetic-tf2","requires":[],"size":125448,"version":"0.7.6","binstar":{"package_id":"63c9d5c02ff78d332e6f5991","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e89338d4461f5bdb435296893f15e75b7e957f2b2a9365ad4372e7c1d3c257cf"},"ros-noetic-geometric-shapes-0.7.3-py39h8e3e931_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"build":"py39h8e3e931_9","timestamp":1674482114405,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4c61fb7cf8934ba3c1760b9afbe1811f","name":"ros-noetic-geometric-shapes","requires":[],"size":110297,"version":"0.7.3","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24daa9967808a221faafc044f1b2ed17ccf201461833c3ff0d4a5d599717b7e2"},"ros-noetic-geometric-shapes-0.7.5-py39heebdfc2_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"subdir":"linux-aarch64","timestamp":1698188046765,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39heebdfc2_10","md5":"a694065fb36ccf7466658efcf47d5e43","name":"ros-noetic-geometric-shapes","requires":[],"size":120130,"version":"0.7.5","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"deb24ce0578c62c130dd0bad1b124d24ffefc9a81c3fae812d98fdcbe4f1b1d7"},"ros-noetic-voxel-grid-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674482204481,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4871e00f6e691739d2c2e59160338f51","name":"ros-noetic-voxel-grid","requires":[],"size":24462,"version":"1.17.3","binstar":{"package_id":"63c9d5c1edf45d7c2e29da9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27dec5f5022925df8f99d3a175ea276e62e21b78676f9fbefd3ea40a729c96f3"},"ros-noetic-rosout-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosgraph-msgs"],"build":"py39he6bf450_9","timestamp":1674481840462,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74c5e7a68152cb6d586402ecedf690df","name":"ros-noetic-rosout","requires":[],"size":52081,"version":"1.15.15","binstar":{"package_id":"63c9d5c220c05f5e390870d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aba702f3169cf21d74dfa1ceabd8c6f404ceb920beaf1b7f2264ac6a65dc988e"},"ros-noetic-rospy-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","rospkg"],"build":"py39he6bf450_9","timestamp":1674481902328,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3c7db9b281ba795c1e86ab6a34aae2e5","name":"ros-noetic-rospy","requires":[],"size":255204,"version":"1.15.15","binstar":{"package_id":"63c9d5c3edf45d7c2e29daae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e47e6b3d22a93a99b2ea153ce5ae72f26307609ba9d2dbba1a50504046c3b163"},"ros-noetic-mbf-msgs-0.4.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594482181,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"10592a07e798b95e9c562f3b7d373930","name":"ros-noetic-mbf-msgs","requires":[],"size":210741,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0dd5224fbd04272fccd391ba959a98b63b71c00224a92c9a22126dc93761c4fc"},"ros-noetic-roscpp-tutorials-0.10.2-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime","ros-noetic-std-msgs"],"build":"py39h562df21_9","timestamp":1674507845885,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d68a4a92e187d4a4796c75e8f1e54e20","name":"ros-noetic-roscpp-tutorials","requires":[],"size":282347,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d22ad3a80e851d78871e61f65bb4f25e2a8f035db5262f3c37acb93ad11168cf"},"ros-noetic-bondpy-1.8.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-smclib"],"build":"py39he6bf450_9","timestamp":1674507698788,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c90ba13a92a12609a8d245e7850dabc3","name":"ros-noetic-bondpy","requires":[],"size":29524,"version":"1.8.6","binstar":{"package_id":"63c9e0c768b198bb95994813","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39f6bf4230f5b5da7e19c9f610d9838242cd50e56069b1d171230cf41f1820c8"},"ros-noetic-control-msgs-1.5.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39he6bf450_9","timestamp":1674507940719,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fac3b74d54421780c2845f70bfe195b8","name":"ros-noetic-control-msgs","requires":[],"size":217583,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a80639c250fee2e67e9f8dab0653daa37ad37c5e8dd14f4fe1c05957eb46f81"},"ros-noetic-urdfdom-py-0.4.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674507704197,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b20a397da3cac51dd06f14f31709b76a","name":"ros-noetic-urdfdom-py","requires":[],"size":58948,"version":"0.4.6","binstar":{"package_id":"63c9e0f55a31eb90f6a5ab76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feddffb1256f6dfefe8fc6da25260ab897a64d032368a5d25ca433ea7eac11a1"},"ros-noetic-roslaunch-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosclean","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosmaster","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rosunit","rospkg"],"build":"py39he6bf450_9","timestamp":1674507539072,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0153427d95e0b72b17e3f4c6c3740d6f","name":"ros-noetic-roslaunch","requires":[],"size":260559,"version":"1.15.15","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f686869ee7da3473474ed3e357e9fdfe46554c13097e1bdb53beb4cc44c67232"},"ros-noetic-tf2-eigen-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39he6bf450_9","timestamp":1674507771305,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fc07f1de4ef1f21e3904725fee8dad74","name":"ros-noetic-tf2-eigen","requires":[],"size":13888,"version":"0.7.6","binstar":{"package_id":"63c9ea252ff78d332e775793","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4630d182bc794d52aa64efefc6e490b68fbbdd04674585dc203574463ebce6af"},"ros-noetic-tf2-py-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2"],"build":"py39he6bf450_9","timestamp":1674507642164,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e8bd6d975a7719c5e745370504fe05ff","name":"ros-noetic-tf2-py","requires":[],"size":253101,"version":"0.7.6","binstar":{"package_id":"63c9ea2859c09271a4483f0a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a7cc42fa8b85ab96c0b9cfc171d1cd6baaa7ea7c141bcf5baecd13f36fe53cf"},"ros-noetic-rqt-gui-0.5.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","rospkg"],"build":"py39he6bf450_9","timestamp":1674507884829,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1b8cd61bb17dda43def19451dc714820","name":"ros-noetic-rqt-gui","requires":[],"size":114546,"version":"0.5.3","binstar":{"package_id":"63c9ea292ff78d332e775808","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4602de262644d12d0bb1a5e876eba0dcedde5f14d511cd5041f9028313aad0a5"},"ros-noetic-bondcpp-1.8.6-py39h8d4f527_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-roscpp","ros-noetic-smclib"],"build":"py39h8d4f527_9","timestamp":1674507562628,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5cb9d22f6e89036b29e4d63efedd6547","name":"ros-noetic-bondcpp","requires":[],"size":74512,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f2ec71e1c8cfc4838117ff62c008641f1a333edfa787841fe2eea979211c2d0"},"ros-noetic-hardware-interface-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674507629260,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"34abc38379325f282a6d33ad9053ba40","name":"ros-noetic-hardware-interface","requires":[],"size":24673,"version":"0.19.6","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68ef707b28584f06b0d0264e2cc20bf74da8f02dc75420596f0086574e38744e"},"ros-noetic-dynamixel-sdk-3.7.51-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674512926838,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f933172fd240ae4c69f2f0e87d7c28bc","name":"ros-noetic-dynamixel-sdk","requires":[],"size":110580,"version":"3.7.51","binstar":{"package_id":"63c9edc8912363225b8c59a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"522d3cfe0a4cb7340d17b876ed4c36234326333f323c0f7603524632c10aede9"},"ros-noetic-tf2-bullet-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39he6bf450_9","timestamp":1674513018724,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1c888b9094f71c64c81b08ca0d6ed5ec","name":"ros-noetic-tf2-bullet","requires":[],"size":12456,"version":"0.7.6","binstar":{"package_id":"63c9edc90273ee116a06ee2d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdcd7a7bbaa50aa6adbbca94963cc889ead89fff2c19480147258c3b5ba8a824"},"ros-noetic-rostest-1.15.15-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-rosmaster","ros-noetic-rospy","ros-noetic-rosunit"],"build":"py39h562df21_9","timestamp":1674537213303,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2313a3574aa7f5b0b575988caee7536b","name":"ros-noetic-rostest","requires":[],"size":51095,"version":"1.15.15","binstar":{"package_id":"63c9ee545a31eb90f6aa0eee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"602446be2daa28b396d7111c091a14038a71b80f8d160cf1441bf00acec2d7b9"},"ros-noetic-controller-interface-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674537543756,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d1d360828a93a75078e8b8d04b9d7465","name":"ros-noetic-controller-interface","requires":[],"size":17371,"version":"0.19.6","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f903831d786337a5dbd791043da1faf892b01e6624a50a97057005845da06323"},"ros-noetic-rqt-gui-py-0.5.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui"],"build":"py39he6bf450_9","timestamp":1674537338519,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ce37e6380b1aa7ffbe2310a3ad0f215a","name":"ros-noetic-rqt-gui-py","requires":[],"size":19478,"version":"0.5.3","binstar":{"package_id":"63c9ee5620c05f5e390ad6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9f2d40fb7ce12479388e4c5c7372f7c445d6df556e9a529ed06725b8a18ff19"},"ros-noetic-nodelet-1.10.2-py39h1ba7145_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39h1ba7145_9","timestamp":1674537471990,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4a5202e6bb72184d88b55ee233e50bbf","name":"ros-noetic-nodelet","requires":[],"size":216255,"version":"1.10.2","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac1bb9ab427c83cd7590f140cdb47c33dc958eab1c85ad6ecb9f4511490919e8"},"ros-noetic-combined-robot-hw-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674512783939,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d4bbc2f5bcc1a63fd05f8fcd170f859e","name":"ros-noetic-combined-robot-hw","requires":[],"size":97986,"version":"0.19.6","binstar":{"package_id":"63c9ee81dbdf733521008d23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e746d3a232c20c51fba347c837384f72d255c014a64c6d568f4432c3b43345b"},"ros-noetic-transmission-interface-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","tinyxml"],"build":"py39he6bf450_9","timestamp":1674512677409,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9e9eb1efa328bbfc7aaee71554f3f097","name":"ros-noetic-transmission-interface","requires":[],"size":300367,"version":"0.19.6","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05132fdf891e90ac76a51f70ffc43accdf61eae43189bf3fdf9d3d770527268a"},"ros-noetic-rosserial-python-0.9.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rospy","ros-noetic-rosserial-msgs"],"build":"py39he6bf450_9","timestamp":1674597663659,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"395265fffee05e62a8db331a67136e06","name":"ros-noetic-rosserial-python","requires":[],"size":45479,"version":"0.9.2","binstar":{"package_id":"63c9ee832ff78d332e79491f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7116b2ff1ef66108e73a4dc07ce5910a3a16ff3027eb6b3db1b13d3cf2c0ab5"},"ros-noetic-bond-core-1.8.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-smclib"],"build":"py39he6bf450_9","timestamp":1674512840655,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"395c8e368902479833606f7e89dcefda","name":"ros-noetic-bond-core","requires":[],"size":7648,"version":"1.8.6","binstar":{"package_id":"63c9ee848ff1ad27428eb132","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0cdb3daed66720343df60d6493f6f8fa113e6873ee822c4cb00f11f993adc51"},"ros-noetic-turtlesim-0.10.2-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39h562df21_9","timestamp":1674481937595,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4694a4bedb7a267a6ec3fede4fa6542f","name":"ros-noetic-turtlesim","requires":[],"size":308630,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fabb6573b02b85f6ad4f823997102769e9e639ba3e5cc7cace266bd091c7ee5e"},"ros-noetic-kdl-parser-py-1.14.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdfdom-py"],"build":"py39he6bf450_9","timestamp":1674538967894,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0e5b80a5cfc1953ff62a33e633349db5","name":"ros-noetic-kdl-parser-py","requires":[],"size":19467,"version":"1.14.2","binstar":{"package_id":"63c9f11bd0e8c095e22c66eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"068e75d1a9225f2ebb152f13486f13ce30c364e5187618572c5fe22daee70497"},"ros-noetic-pluginlib-tutorials-0.2.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674482274398,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aab948719f80b78a3fc9c095e2271f8b","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":95636,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56e9c9fc72f223bad53d273989732c7c82d9aaaffc7cdffb61bde27484df091e"},"ros-noetic-rqt-top-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39he6bf450_9","timestamp":1674538891433,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"468c1644d169e8e2a285fafb64fa8425","name":"ros-noetic-rqt-top","requires":[],"size":28187,"version":"0.4.10","binstar":{"package_id":"63c9f1a25a31eb90f6ab77f6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"920284918aa50ea3061ff45452122a60edabb8e6a17916b90030b2d681b02308"},"ros-noetic-rospy-tutorials-0.10.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674538692954,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"33f7c44bd3dc7a35fe4505d49d292d97","name":"ros-noetic-rospy-tutorials","requires":[],"size":56390,"version":"0.10.2","binstar":{"package_id":"63c9f1a3c37c80a75b45311d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8740cf30a2ed25cb00f6dec079b25257afbfa9c9b7cae29f5d838397ae80c23"},"ros-noetic-rqt-runtime-monitor-0.5.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674538776085,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e3f5c7a47a0deb31871ba986c37c9bf7","name":"ros-noetic-rqt-runtime-monitor","requires":[],"size":29203,"version":"0.5.9","binstar":{"package_id":"63c9f1a5a64974fd09a5942b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bcee15249f9e59a638062995931ceadaf6230df04c9f3eb49b2c40cf67924214"},"ros-noetic-rqt-web-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-webkit-dependency","rospkg"],"build":"py39he6bf450_9","timestamp":1674538834598,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a128a13a82f0bf8f3cb31e177e3b3c0","name":"ros-noetic-rqt-web","requires":[],"size":24157,"version":"0.4.10","binstar":{"package_id":"63c9f1a6dbdf733521024dae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b1432fa79540c0c2bdbcb207165b20557ccc91edce074737d9a27c25cb35ae3"},"ros-noetic-rqt-shell-0.4.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674538948446,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1640c911d5a2635cc1988e798a923f69","name":"ros-noetic-rqt-shell","requires":[],"size":29413,"version":"0.4.11","binstar":{"package_id":"63c9f1a7b05590e2b1c00213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50dfed9feb9ddf6fb6eb1e78a4bf835361298121c9b83c2e917c40e492a3792c"},"ros-noetic-hector-map-tools-0.5.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs"],"build":"py39he6bf450_9","timestamp":1674482080506,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3913d306fca8997f274ea0788c71daa4","name":"ros-noetic-hector-map-tools","requires":[],"size":14057,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54e36908278520404dd07828b110dd277e6f390d47a358cbce5ce465c2824aa1"},"ros-noetic-visualization-marker-tutorials-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674482171142,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"041bc0b26ddd76b4aaa540c7c121a9bd","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":41773,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca9ee22ecfd348686a32b76314fe0eb78c2b9595b79d1e379734192ea5efa38a"},"ros-noetic-rqt-py-console-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674538696958,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0b87952884138dd358d90278f3c0d738","name":"ros-noetic-rqt-py-console","requires":[],"size":23944,"version":"0.4.10","binstar":{"package_id":"63c9f21ac37c80a75b4552b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feca7a386f89e0c2f96957946af760fa2d32bab45b8639de2215e485ceecc341"},"ros-noetic-hector-nav-msgs-0.5.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674482014227,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4153af029cac3e30ae1b6c5ae9135f5f","name":"ros-noetic-hector-nav-msgs","requires":[],"size":60658,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa723109308ef9f4484fb3ebe2dc32c3833992387ffaffb08748d451f00eb7a3"},"ros-noetic-urdf-1.13.2-py39h7064faf_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39h7064faf_9","timestamp":1674539112480,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d27c17c9f2bb147cabc4c832712b36e2","name":"ros-noetic-urdf","requires":[],"size":93141,"version":"1.13.2","binstar":{"package_id":"63c9f233c37c80a75b456731","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"090b54ae78aa52143dd77217d555df0e341a2d3eb4fe0ba566a2557b957d257c"},"ros-noetic-xacro-1.14.14-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslaunch"],"build":"py39he6bf450_9","timestamp":1674539181631,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"231fe84a1d448a33809cb3c75e801331","name":"ros-noetic-xacro","requires":[],"size":67939,"version":"1.14.14","binstar":{"package_id":"63c9f236b23346582ca98c5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b299b0a55a6bbd3a30ee3239283cfc4f755ec63bbbcc2df129526d43281efb3c"},"ros-noetic-topic-tools-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39he6bf450_9","timestamp":1674538754007,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af8abb96ec1a16394d7c832c20cf07e1","name":"ros-noetic-topic-tools","requires":[],"size":256199,"version":"1.15.15","binstar":{"package_id":"63c9f23759c09271a44a50b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76a4b7e453a3cfde0590395fe366589f0a4b57267310b0f65d136bec2b4bf935"},"ros-noetic-message-filters-1.15.15-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"build":"py39h562df21_9","timestamp":1674539004053,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"88ee3d0e5f39039f352b56911855fc70","name":"ros-noetic-message-filters","requires":[],"size":50347,"version":"1.15.15","binstar":{"package_id":"63c9f239edf45d7c2e2f4f0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36497f199213e00b8c4e95dcf039d629107f8a893531ed76e08e9f1e59f6784f"},"ros-noetic-realsense2-description-2.3.2-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"subdir":"linux-aarch64","timestamp":1693336831259,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39he6bf450_10","md5":"21ac75dd1363f93888ebd52bed8d9caf","name":"ros-noetic-realsense2-description","requires":[],"size":21681560,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a94f142de57226d7bcfb7e50c01612df82b771ce689a4f0c499a862a520ac4c4"},"ros-noetic-moveit-resources-prbt-support-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674539705014,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"259f1c7d0b990c02aaf9756e823138a2","name":"ros-noetic-moveit-resources-prbt-support","requires":[],"size":1079686,"version":"0.8.2","binstar":{"package_id":"63ca0b84c37c80a75b525288","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83918f6255e426736e5686736765e626fc4e2523a0d38b9462876f87712c0caf"},"ros-noetic-nodelet-tutorial-math-0.2.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674538898409,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f075e2c1dfc72e204036858b8c543c8c","name":"ros-noetic-nodelet-tutorial-math","requires":[],"size":46613,"version":"0.2.0","binstar":{"package_id":"63ca0b85d0e8c095e23995ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9be5d75e9c358db7e9c63fd80a8244b750b2b207f109254c805dbf484531a9e6"},"ros-noetic-velodyne-description-1.0.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674590424515,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"478d30e64e6b5896e7ea1ad8698482b0","name":"ros-noetic-velodyne-description","requires":[],"size":303040,"version":"1.0.13","binstar":{"package_id":"63ca0b8868b198bb959f153d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05b164ee30a3d2de45ef7d35ab20c2364847450eb2d6465dbf07b04a06d80a41"},"ros-noetic-turtlebot3-teleop-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674594311220,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f8e0a71a903261ff6a82a96a00d2cab2","name":"ros-noetic-turtlebot3-teleop","requires":[],"size":14439,"version":"1.2.5","binstar":{"package_id":"63ca0d065a31eb90f6b3d898","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"193d3d70d124822caefbda20f26701f1f856e6ff441fb1be0e1de89202c75db9"},"ros-noetic-class-loader-0.5.0-py39h30f405c_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h30f405c_9","timestamp":1674476852704,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e5bea586adf116cf943f2155499d85df","name":"ros-noetic-class-loader","requires":[],"size":82339,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b5cc58acfd359f18d66c008119ccc6fd2a67ace61974197f637a190e56f7756"},"ros-noetic-rosbag-1.15.15-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pycryptodome","pycryptodomex","python","python-gnupg","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp","rospkg"],"build":"py39h562df21_9","timestamp":1674539814233,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e62732d9645dba8ac051f4192a6a9a26","name":"ros-noetic-rosbag","requires":[],"size":697891,"version":"1.15.15","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3dec55ddfe54f384c5edec46223ec49468640d5e34150e168693ab1a4a6e89b5"},"ros-noetic-diagnostic-aggregator-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-diagnostic-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-xmlrpcpp"],"build":"py39he6bf450_9","timestamp":1674539007037,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c3e0dc1f89786a3485675ec79235e963","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":426412,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a305d9775fcac0cd9599a6ee497573690962f480e45f0108f11c8fc1523245df"},"ros-noetic-diagnostic-updater-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674538872553,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1dbcc0c1d294a936a4125f4e772b3200","name":"ros-noetic-diagnostic-updater","requires":[],"size":75738,"version":"1.11.0","binstar":{"package_id":"63ca19745a31eb90f6b81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a59f3124dbce39c149e1bbda872be9c9475d9bd7170724a92fcb593f3fb294f"},"ros-noetic-kdl-parser-1.14.2-py39ha993e5e_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-urdf","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom_headers"],"build":"py39ha993e5e_9","timestamp":1674539920930,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d83269132c555c367c09fff1f933406c","name":"ros-noetic-kdl-parser","requires":[],"size":37835,"version":"1.14.2","binstar":{"package_id":"63ca197614201bfa453812c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a690a575e4ac27771f38ca975c5683fc7bdcf590382ad61cce88407d2de15cd"},"ros-noetic-jackal-navigation-0.8.5-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-amcl","ros-noetic-gmapping","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39hfaf8bd9_3","timestamp":1674587635353,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"652b3d09c7e8b8b3002258944a8d391e","name":"ros-noetic-jackal-navigation","requires":[],"size":37156,"version":"0.8.5","binstar":{"package_id":"63ca2115d0e8c095e2427b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60f6827ba7f43853c4d60205d70e0dc9037e81d140042ec7d30f2465031cfc66"},"ros-noetic-rostopic-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674540961535,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"658e3164e20700426b30c98f043bd648","name":"ros-noetic-rostopic","requires":[],"size":88717,"version":"1.15.15","binstar":{"package_id":"63cb6b58a64974fd09f761ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb63da4c948c4dfea5f6f0ca6c69227813f1324582d7ba97c90f7666ab24d65f"},"ros-noetic-rosmsg-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-roslib","rospkg"],"build":"py39he6bf450_9","timestamp":1674541033409,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1d8b7ffe550bfe39bd2e8a45f9f4cffb","name":"ros-noetic-rosmsg","requires":[],"size":43807,"version":"1.15.15","binstar":{"package_id":"63cb6d178ff1ad27426d708c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e8c2cc97aa9c93f40f67f7e154436d7c4db55fc3004af1836aaf67adf15583c"},"ros-noetic-sensor-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674541125502,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"41a092a12399580b7de71f7f454845f7","name":"ros-noetic-sensor-msgs","requires":[],"size":225137,"version":"1.13.1","binstar":{"package_id":"63cb6d1ac37c80a75b2b480e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"687ade4269bd3a76402a26260c389a5a1d414c4b2d7d77558035d816bf74bf00"},"ros-noetic-self-test-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674540210436,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c9ea7b2d38289717f2a74767f2f3ed46","name":"ros-noetic-self-test","requires":[],"size":216761,"version":"1.11.0","binstar":{"package_id":"63cb6d1adbdf733521e9130f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7cbba12a1fd9ebf877260a219f3dc6070959a2d1fd9f53dcaad25e0c2e25b9b7"},"ros-noetic-jackal-control-0.8.5-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-interactive-marker-twist-server","ros-noetic-joint-state-controller","ros-noetic-joy","ros-noetic-robot-localization","ros-noetic-teleop-twist-joy","ros-noetic-topic-tools","ros-noetic-twist-mux"],"build":"py39hfaf8bd9_3","timestamp":1674547967984,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e0f1a6ed3f2f78e92b6cb6aefe425858","name":"ros-noetic-jackal-control","requires":[],"size":14409,"version":"0.8.5","binstar":{"package_id":"63cb6d1bedf45d7c2e7b924c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4397270685775dc74c035442c1aeb0a45b5e5bdd4bb1d4b78906ca1e17ee1cdb"},"ros-noetic-filters-1.9.2-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39h562df21_9","timestamp":1674539115780,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54c5b532700731e2bb2d45a3fac0eb30","name":"ros-noetic-filters","requires":[],"size":110440,"version":"1.9.2","binstar":{"package_id":"63cb6d1c2ff78d332e290f80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff71e73077d5d594f1f782a503ebfc385bac0afb0d600d2d1ad88c61e51cfe68"},"ros-noetic-diagnostic-analysis-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rosbag","ros-noetic-roslib"],"build":"py39he6bf450_9","timestamp":1674541647219,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"56b8a0f79bc80df74f2ed3dbb205edda","name":"ros-noetic-diagnostic-analysis","requires":[],"size":25472,"version":"1.11.0","binstar":{"package_id":"63cb6d1cd0e8c095e2091b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c0e42039ab7d3a399e4db8553999c6aeee4021491eef93684a4b6ae206ad011"},"ros-noetic-ros-tutorials-0.10.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp-tutorials","ros-noetic-rospy-tutorials","ros-noetic-turtlesim"],"build":"py39he6bf450_9","timestamp":1674539822170,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a33dc19da96f56c2191129b00d096c78","name":"ros-noetic-ros-tutorials","requires":[],"size":8825,"version":"0.10.2","binstar":{"package_id":"63cb6d1d912363225b376ac3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"226f0ff2c4dbe528c887c736c16650fbd45317ea94d4490a2a051811eecbf3ec"},"ros-noetic-rosservice-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosgraph","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674542114212,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f02458680feb1dca5b6b2870f9fecbd9","name":"ros-noetic-rosservice","requires":[],"size":36469,"version":"1.15.15","binstar":{"package_id":"63cb6e6920c05f5e39391f10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"292a37aec184e4460da85f36ddb5ea9350ab5c5a8ccd4c55a7aa3d0627371b13"},"ros-noetic-joint-state-publisher-1.15.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674542398952,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cb605585ce193d4b67e600892f874daa","name":"ros-noetic-joint-state-publisher","requires":[],"size":24093,"version":"1.15.1","binstar":{"package_id":"63cb6e6a2ff78d332e294985","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f28587b8c29085b2f79dada50a4b2cf5e22697285dbdbf5fe0f650c024bd0e1"},"ros-noetic-map-msgs-1.14.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542188296,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f96addc8b67d0d72016d84263192b990","name":"ros-noetic-map-msgs","requires":[],"size":81188,"version":"1.14.1","binstar":{"package_id":"63cb6e6c5a31eb90f65539e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7296d76025f40f306b7e0850ad781ac4b31e12be96e0c35327aed39f8640f78d"},"ros-noetic-rosnode-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-rostopic"],"build":"py39he6bf450_9","timestamp":1674542042112,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9b8da9e0c5849040ef703cd1440fb110","name":"ros-noetic-rosnode","requires":[],"size":40776,"version":"1.15.15","binstar":{"package_id":"63cb6e6dc37c80a75b2bce42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fba2a5ef74c09116a4e015a7d6f24ca76ca887428c4e48f7874793b7b918b74"},"ros-noetic-image-transport-1.12.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674542331236,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"70a79860beee4305d529d862cccff053","name":"ros-noetic-image-transport","requires":[],"size":361178,"version":"1.12.0","binstar":{"package_id":"63cb6e6ec37c80a75b2bce48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81c6b91e972cd0130766cae903f815d2f7b8d84664d50a58b34ac53d06c4c641"},"ros-noetic-rqt-topic-0.4.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-std-msgs","rospkg"],"build":"py39he6bf450_9","timestamp":1674542165062,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"29bd267e5dce94c469b3a6a300038564","name":"ros-noetic-rqt-topic","requires":[],"size":37686,"version":"0.4.13","binstar":{"package_id":"63cbbed3d0e8c095e22e70cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79fac2bd617b8f5acb486f5baec24e0b532590caf197dced578354707a30519f"},"ros-noetic-rqt-robot-steering-0.5.12-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674542220807,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a762eede53691517a559b0acf21707b8","name":"ros-noetic-rqt-robot-steering","requires":[],"size":25894,"version":"0.5.12","binstar":{"package_id":"63cbbed468b198bb95ec6cc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6364d71391798f21b368838f4f4d1774768b7cb09df47735dd6b71462d7fbf38"},"ros-noetic-joint-state-publisher-gui-1.15.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-python-qt-binding","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674543186466,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b5566912c92d40cbb668fa7791ef7c83","name":"ros-noetic-joint-state-publisher-gui","requires":[],"size":22874,"version":"1.15.1","binstar":{"package_id":"63cbbf54be293b9e161bb6ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33f2477d8afaacb68fb279e3487abece5e3c7a9951dd39d5d1da92179b004d81"},"ros-noetic-dynamic-reconfigure-1.7.3-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39h562df21_9","timestamp":1674543486874,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"866756ce2293f0091143bf19801e7521","name":"ros-noetic-dynamic-reconfigure","requires":[],"size":170998,"version":"1.7.3","binstar":{"package_id":"63cbbf5568b198bb95ec776c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f35cb099e8803558482c1d58a8666e90fe50fa100616c67357923c76112075b3"},"ros-noetic-actionlib-1.14.0-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h562df21_9","timestamp":1674543011740,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0131dabb791f304a7f0788f5483cf074","name":"ros-noetic-actionlib","requires":[],"size":226849,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92de5653a9d9ea6d1b12431bdbb408ee3334543b5f1089bd850260c802e20865"},"ros-noetic-actionlib-1.14.0-py39h562df21_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h562df21_10","timestamp":1678494738050,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"eb59b7a93e3c45b9fd5543794eec715a","name":"ros-noetic-actionlib","requires":[],"size":224345,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91be822b04f5ec55ff916b7c6e986026f27e0672e873ef13c3476d36a65fcd2f"},"ros-noetic-rqt-logger-level-0.4.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674543017075,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8ee4aa0dd5b055df41a220bbf69e4da4","name":"ros-noetic-rqt-logger-level","requires":[],"size":25674,"version":"0.4.11","binstar":{"package_id":"63cbbf57c37c80a75b479e76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec60236c929ba535f4d82e680e74e7f32c3fd7a512e4df8c6b50d48411579169"},"ros-noetic-roswtf-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rosservice","rospkg"],"build":"py39he6bf450_9","timestamp":1674543101593,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3406a1e318f13152d8e87d27ecf50efe","name":"ros-noetic-roswtf","requires":[],"size":79522,"version":"1.15.15","binstar":{"package_id":"63cbbf58d0e8c095e22e96ed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84121246bab65f0841d9138e73378db65f33597c209acec63b2e88449aaaacba"},"ros-noetic-rosserial-server-0.9.2-py39h562df21_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosserial-msgs","ros-noetic-std-msgs","ros-noetic-topic-tools"],"build":"py39h562df21_9","timestamp":1674597707550,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e6f67390509503cfdb0e4238aa342e4","name":"ros-noetic-rosserial-server","requires":[],"size":363563,"version":"0.9.2","binstar":{"package_id":"63cbbf8c989160afcf1e1ddf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e05d59d9b82cdedf800db66614297e546b5793a7c69f5a34255bf099e44e8c1b"},"ros-noetic-map-server-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf2","sdl >=1.2.60,<1.3.0a0","sdl_image >=1.2.12,<1.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39he6bf450_9","timestamp":1674538764544,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"817462b3da9e6887e16fc66176d9ac96","name":"ros-noetic-map-server","requires":[],"size":103190,"version":"1.17.3","binstar":{"package_id":"63cbc0f18ff1ad2742896865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"568d3d59eb010396c88e4c8fa4b8b42bece1d53e39010822c3a7b575477f864a"},"ros-noetic-srdfdom-0.6.3-py39h1e020c9_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-urdfdom-py","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h1e020c9_9","timestamp":1674540026612,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"935a9ba021e926c694a8839f38596094","name":"ros-noetic-srdfdom","requires":[],"size":91820,"version":"0.6.3","binstar":{"package_id":"63cbc0fddbdf73352109dc3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30b1224cf9dbe32bebb2264399b8fde5927f94d3e56ed8f016923b713d681903"},"ros-noetic-qt-gui-cpp-0.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674538287661,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"57ba9738451949bf35d3c0603cfcdd9d","name":"ros-noetic-qt-gui-cpp","requires":[],"size":280408,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a40e31207d53127a15da992ada42f59350f399c81db7a73beb177742e5f754e4"},"ros-noetic-smach-ros-2.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39he6bf450_9","timestamp":1674544232075,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"37d15087e034869f285e15c12e9a1ee7","name":"ros-noetic-smach-ros","requires":[],"size":55571,"version":"2.5.0","binstar":{"package_id":"63cca29ab23346582c522620","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"792df31ad47580a3ffa3f2ccbf3c903c976fa03cf5b115f8bd25b71a5a0fc9cd"},"ros-noetic-turtle-actionlib-0.2.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-angles","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-turtlesim"],"build":"py39he6bf450_9","timestamp":1674543993759,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"063cba7aed92efa6b4ed7c7739d26cb1","name":"ros-noetic-turtle-actionlib","requires":[],"size":266245,"version":"0.2.0","binstar":{"package_id":"63cca29c5a31eb90f6a03908","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0789b0035cfe5fd753ac945c16933f225c8327a466d7e68c8a596c0eba984a4e"},"ros-noetic-rqt-py-common-0.5.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-genpy","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rostopic"],"build":"py39he6bf450_9","timestamp":1674544065876,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b9bf7f2d46895903ee6935abf00facd2","name":"ros-noetic-rqt-py-common","requires":[],"size":85596,"version":"0.5.3","binstar":{"package_id":"63cca33b2ff78d332e770234","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8e4fd3da42d83a72a161786e1bc6122282df7cfef4dcf98cca52d7c5332ddc4"},"ros-noetic-nodelet-topic-tools-1.10.2-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hb6bd954_9","timestamp":1674544143256,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7bbed87afaa6639d5b9ec7601ec567a6","name":"ros-noetic-nodelet-topic-tools","requires":[],"size":23557,"version":"1.10.2","binstar":{"package_id":"63cca33c8ff1ad2742e7bdba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce4156f49ab11293ac9a8b82bfda1d10802420650a941a313aebc8379a218a9b"},"ros-noetic-cv-bridge-1.16.2-py39h8eb5ebd_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h8eb5ebd_9","timestamp":1674542452522,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"74bccb3f4b800b6a41a4db37dc2ac9ad","name":"ros-noetic-cv-bridge","requires":[],"size":181690,"version":"1.16.2","binstar":{"package_id":"63cca33ecd65eb0e146473d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e09b8433274cb7bb449eebc6b4b8c48cb3b867586d3feb6a74ff71734d203af2"},"ros-noetic-tf2-ros-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-xmlrpcpp"],"build":"py39he6bf450_9","timestamp":1674543930707,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bf823739424f25b27acb6b9afba79a75","name":"ros-noetic-tf2-ros","requires":[],"size":323128,"version":"0.7.6","binstar":{"package_id":"63cca33fc37c80a75ba5cc0b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32d2fe02d80ac4ab8003cf02fb1cba9147f89e084f9f6a1c8eac384338cabe85"},"ros-noetic-stereo-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542006284,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e53b47bab4228807ada496baae483089","name":"ros-noetic-stereo-msgs","requires":[],"size":31700,"version":"1.13.1","binstar":{"package_id":"63cca3402ff78d332e77029c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7a826ed47d0dad1df6e4d56f1a3bf2f5d1752340c16bfd570e69b3bf99ac907"},"ros-noetic-turtlebot3-description-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674594379099,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"088ba5442f321c0b6b775e29bfbc2f20","name":"ros-noetic-turtlebot3-description","requires":[],"size":5654118,"version":"1.2.5","binstar":{"package_id":"63cca406a64974fd0910aac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca9c8f5cd27e50aea7533e4a92d59d806d55dd19eaca1e31d4b883ce0cfc909f"},"ros-noetic-rqt-gui-cpp-0.5.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-qt-gui","ros-noetic-qt-gui-cpp","ros-noetic-roscpp","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674539297659,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"aa37566fa39fcb6255c93a5fa2141a54","name":"ros-noetic-rqt-gui-cpp","requires":[],"size":112902,"version":"0.5.3","binstar":{"package_id":"63cca8862ff78d332e78663e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40f075dfdced042f34c43f0f8f348dd4254568f7b050cd0709724d121f00a615"},"ros-noetic-joint-limits-interface-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674540098133,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8d73d0fba48a271a4a5c88a47ce03f88","name":"ros-noetic-joint-limits-interface","requires":[],"size":18218,"version":"0.19.6","binstar":{"package_id":"63cca888c37c80a75ba7d25f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"603c6ab45cb5ff3e33742964dba7f86c4174475d451274e69ce05d477ac92dcf"},"ros-noetic-gps-common-0.3.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542324056,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4e5b49ea0cd35eee71053c0e3caa13c2","name":"ros-noetic-gps-common","requires":[],"size":114779,"version":"0.3.3","binstar":{"package_id":"63ccac48d0e8c095e2a303b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc63b87d107dd2b7c5c232d9360f819d8bb0babcc75f38a9bd70b6fb54364356"},"ros-noetic-hls-lfcd-lds-driver-1.1.2-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hb6bd954_9","timestamp":1674594329409,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4bad5541cc10cbb51f3919eb290ecc7a","name":"ros-noetic-hls-lfcd-lds-driver","requires":[],"size":110440,"version":"1.1.2","binstar":{"package_id":"63ccac4a59c09271a4f280e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9766daca28a7f4820342b90090f8821bc6b540218d38befaa1e3fefa2c849c5a"},"ros-noetic-lms1xx-0.3.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674587628501,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b6991cc1141eac0235bcff9784e0591d","name":"ros-noetic-lms1xx","requires":[],"size":247266,"version":"0.3.0","binstar":{"package_id":"63ccac4dedf45d7c2e922c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cc823524e2ed46c66c90954f4dc99a80a50873ab9b31bbc5b76134c179f9169"},"ros-noetic-pcl-msgs-0.3.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542075027,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d22b92807ac48aeebd3b4c49d04d8b38","name":"ros-noetic-pcl-msgs","requires":[],"size":49438,"version":"0.3.0","binstar":{"package_id":"63ccaca4a64974fd09115016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c70c1c30750814c49aa1446cb584e13e2ad454d3c7e5c4921184bbd672e23960"},"ros-noetic-joy-1.15.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674587792860,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a743ebbc1394c1512df0fb16ae50d61","name":"ros-noetic-joy","requires":[],"size":83118,"version":"1.15.1","binstar":{"package_id":"63ccaca70273ee116abaf554","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d9b0dbfd0b897f70e228a0d3e1525a94568d36a67103905fb6aafd0cb09acff"},"ros-noetic-gazebo-msgs-2.9.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-trajectory-msgs"],"build":"py39he6bf450_9","timestamp":1674542110122,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fb566027cb8a4cc5d672a4d2ea440cd2","name":"ros-noetic-gazebo-msgs","requires":[],"size":231604,"version":"2.9.2","binstar":{"package_id":"63ccad3fcd65eb0e1466d326","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aab1e909faefcf1d5b1c849c35ef3004147cf962aca00c2f201e1fd661109c09"},"ros-noetic-object-recognition-msgs-0.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542017408,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a7585db17a3a7ed3d2f14d871269cac9","name":"ros-noetic-object-recognition-msgs","requires":[],"size":142414,"version":"0.4.2","binstar":{"package_id":"63ccad40b23346582c53a981","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3f60d181cd09826aa9d6a0645eb934017a51147fee6ef59b913e272ac2d47f6"},"ros-noetic-image-geometry-1.16.2-py39h12fffa4_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h12fffa4_9","timestamp":1674542285171,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"153f3c5473c585a8d6a4615b697cb9ab","name":"ros-noetic-image-geometry","requires":[],"size":47984,"version":"1.16.2","binstar":{"package_id":"63ccad41d0e8c095e2a34205","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ecb8976e4f94e73ab17febb9356e6998049dc36f3040878a5122844ac9a6afe"},"ros-noetic-camera-calibration-parsers-1.12.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hb6bd954_9","timestamp":1674542569557,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"330541b77018d3731a9d0d5ea1bd6666","name":"ros-noetic-camera-calibration-parsers","requires":[],"size":99118,"version":"1.12.0","binstar":{"package_id":"63ccad42989160afcf3d599b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03d7af038fb144a6c5cd40a1910cfaef955f633ebf0437635d1f96a602285fb6"},"ros-noetic-teleop-twist-joy-0.1.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-joy","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674594389664,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c6b179fcebaee345d4892e1719bd76f3","name":"ros-noetic-teleop-twist-joy","requires":[],"size":63449,"version":"0.1.3","binstar":{"package_id":"63ccb0d5dbdf733521734088","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54b1a58c0323e5ab527557252d6d1fd38a800ea0ff86127fb0af7ff52f45dd39"},"ros-noetic-vision-opencv-1.16.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry"],"build":"py39he6bf450_9","timestamp":1674543108891,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"59c12e03091cf7314efa52b5145c5784","name":"ros-noetic-vision-opencv","requires":[],"size":9225,"version":"1.16.2","binstar":{"package_id":"63ccb0d75a31eb90f6a3625d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53ab308daad1acbdcd9beb1c0b2e0cfd332adf38ad72537985cf5c38cff8942a"},"ros-noetic-camera-calibration-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry","ros-noetic-message-filters","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-srvs"],"build":"py39he6bf450_9","timestamp":1674543017344,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"efdbc3fd2163117a730ff56d1b9bb9fc","name":"ros-noetic-camera-calibration","requires":[],"size":103199,"version":"1.17.0","binstar":{"package_id":"63ccb0da2ff78d332e7a1dc0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f249dbbf4504161ec41595826f35373cc63b22ca9c289600000a754858f29b0"},"ros-noetic-camera-info-manager-1.12.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-image-transport","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39hb6bd954_9","timestamp":1674543258226,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3e5381f2ddbe50d4e027ab5c065424a4","name":"ros-noetic-camera-info-manager","requires":[],"size":61044,"version":"1.12.0","binstar":{"package_id":"63ccb100912363225b8e225c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb31fe9d41749f9657c261e8f60c4f6a60ac92a8388cad7a498fb86e689a48ff"},"ros-noetic-pcl-conversions-1.7.4-py39h2400c48_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","xorg-libx11","xorg-libxext"],"build":"py39h2400c48_9","timestamp":1674543414019,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f965fb738b2510803272c51f60727d68","name":"ros-noetic-pcl-conversions","requires":[],"size":18718,"version":"1.7.4","binstar":{"package_id":"63ccb100cd65eb0e1467878f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c9170fa0f9d922918596aa693594bafeb6df1c80398b16db6ff08a798097b80"},"ros-noetic-rqt-bag-0.5.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosbag","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674543153553,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bb9db6fa3472db6b6f49fdcd1d2759aa","name":"ros-noetic-rqt-bag","requires":[],"size":140862,"version":"0.5.1","binstar":{"package_id":"63ccb1015a31eb90f6a366b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c73260ae8e9b917d0727cb2ae07ade52c9cc12733cdad549e876c60cdeb1b22"},"ros-noetic-controller-manager-msgs-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674543095711,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"94884e41680d8dc2a972e3b89efcb47e","name":"ros-noetic-controller-manager-msgs","requires":[],"size":86828,"version":"0.19.6","binstar":{"package_id":"63ccb10314201bfa458f919f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76cec738db3e12341d81573301a5ac9d0fba5bad55bec7ae057d67b4f9382aac"},"ros-noetic-moveit-msgs-0.11.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-object-recognition-msgs","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39he6bf450_9","timestamp":1674543355051,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a80355710cda1c49c716c2c1b3e0fb1","name":"ros-noetic-moveit-msgs","requires":[],"size":2354244,"version":"0.11.4","binstar":{"package_id":"63ccb21759c09271a4f33cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64ee8f14b90a7e5a5894e7a1351bb7acf8ea180d8d2288db8ef9a5d2fc407bf6"},"ros-noetic-executive-smach-2.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-smach-ros"],"build":"py39he6bf450_9","timestamp":1674544974500,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bb2a0d5c10d73bcd0b8506786d1eccf5","name":"ros-noetic-executive-smach","requires":[],"size":7928,"version":"2.5.0","binstar":{"package_id":"63cd1036912363225ba3b103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f440ed390e7c1d7229d44e8d1ee1db82b8d4b3bac1498049b335e1384567f299"},"ros-noetic-rqt-service-caller-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39he6bf450_9","timestamp":1674545173179,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c1593dd125577267f97307ee002758af","name":"ros-noetic-rqt-service-caller","requires":[],"size":29694,"version":"0.4.10","binstar":{"package_id":"63cd10c9912363225ba3c28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2ebce6345eaf0d396f61c7d793ced439b791afa68f4f41a9e1023b2c3f16123"},"ros-noetic-nodelet-core-1.10.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools"],"build":"py39he6bf450_9","timestamp":1674544968377,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"07276d5892343113f140e238ce40cb19","name":"ros-noetic-nodelet-core","requires":[],"size":7921,"version":"1.10.2","binstar":{"package_id":"63cd10cad0e8c095e2ca14ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46acbe4d2353edbafe74a94b3a0b926dd2bfbac3c7c25a21adf796fcab61c317"},"ros-noetic-rqt-moveit-0.5.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-rqt-topic","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674545117602,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a182ae2dc8651cd8977b10e8c5da3e62","name":"ros-noetic-rqt-moveit","requires":[],"size":30064,"version":"0.5.10","binstar":{"package_id":"63cd10cbdbdf73352196d733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b3347968d8fb8031a2d64e2189dcd62172c97adda2af0034a1d91b9152563b1"},"ros-noetic-rqt-graph-0.4.14-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674543345674,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d302f2ddf580c6225cc14ef72c9c31b1","name":"ros-noetic-rqt-graph","requires":[],"size":64328,"version":"0.4.14","binstar":{"package_id":"63cd10cc989160afcf4833b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feee648bf4ab1239d6f90b9d2850bab5bb999fe61b72cc4d7afbbb05dc4934cc"},"ros-noetic-rqt-publisher-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39he6bf450_9","timestamp":1674545230819,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"903e940a8b96fe84377dec633ac9d2a3","name":"ros-noetic-rqt-publisher","requires":[],"size":42707,"version":"0.4.10","binstar":{"package_id":"63cd10ccdbdf73352196d766","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66e8d8ac1fc528078fa41cc5c2f96413fb487288d790440072ab5d0268039233"},"ros-noetic-tf-1.13.2-py39h76ceefd_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["graphviz >=6.0.2,<7.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roswtf","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39h76ceefd_9","timestamp":1674545180442,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ef2542c96208effcf0304df981f8f385","name":"ros-noetic-tf","requires":[],"size":318731,"version":"1.13.2","binstar":{"package_id":"63cd10fccd65eb0e147f83eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48fced04785eea2bc3d59c03e117e729d58e9015106ce752200de58ff27f06b0"},"ros-noetic-rqt-console-0.4.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-logger-level","ros-noetic-rqt-py-common","rospkg"],"build":"py39he6bf450_9","timestamp":1674545398073,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"19161756e8a9fe5e4b180aa45048e292","name":"ros-noetic-rqt-console","requires":[],"size":97510,"version":"0.4.11","binstar":{"package_id":"63cd10fd8ff1ad27420b3c5c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c711d5cf0c6073a6b2a2b04fd96da453074823c30bcad8daf421719a86c8c6d"},"ros-noetic-tf2-kdl-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674545253488,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"88ff22247608c1b0ba01153b16a1857e","name":"ros-noetic-tf2-kdl","requires":[],"size":20964,"version":"0.7.6","binstar":{"package_id":"63cd10fe5a31eb90f6b90d9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38a3118cd16b9a5023e324fbe8a8389ca55b241b851018e86bdbea27d065e1a2"},"ros-noetic-tf2-geometry-msgs-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674544995435,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"32df6f991214836c6f1bfa307893182e","name":"ros-noetic-tf2-geometry-msgs","requires":[],"size":21073,"version":"0.7.6","binstar":{"package_id":"63cd10ffdbdf73352196fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60dcae0f33a10e9accf5342dc857ebfcdd890b2adec5cf58496a519c65943417"},"ros-noetic-rqt-controller-manager-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39he6bf450_9","timestamp":1674544141247,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"28a4dec6acb8062b3ac82a4421c034e3","name":"ros-noetic-rqt-controller-manager","requires":[],"size":52827,"version":"0.19.6","binstar":{"package_id":"63cd168d912363225ba55282","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e10e715b455aaa2be113d77d7db4bb918d5fef4fe4072b627b3c23c6a6e4d0b6"},"ros-noetic-controller-manager-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674544359698,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0059afa6c94b043a5b4aa8dc2df98a07","name":"ros-noetic-controller-manager","requires":[],"size":157428,"version":"0.19.6","binstar":{"package_id":"63cd16bedbdf7335219a4f53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43e101ba69ae10bb6ac5285437586538a59a1ff15e6fc2ecbf15f9af92d557fa"},"ros-noetic-realtime-tools-1.16.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674544234508,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1f047765179f06dc57a03031904d128a","name":"ros-noetic-realtime-tools","requires":[],"size":30263,"version":"1.16.1","binstar":{"package_id":"63cd16c2912363225ba55506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3fd162d06ef373533ba9bd00d31d98dd5638e6841302e3a62f0dcd93e62785a"},"ros-noetic-theora-image-transport-1.14.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674543989586,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"809460695c678add3645fca586a03578","name":"ros-noetic-theora-image-transport","requires":[],"size":189756,"version":"1.14.0","binstar":{"package_id":"63cd179e2e1172ba36a19dba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fdac1159dbb62ce45b956517e0abd2e62da0af9abf0a50dd03836af9fe3f19a"},"ros-noetic-compressed-depth-image-transport-1.14.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39he6bf450_9","timestamp":1674544152821,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9af282cbb78eda4a2336d4d24eddac57","name":"ros-noetic-compressed-depth-image-transport","requires":[],"size":137519,"version":"1.14.0","binstar":{"package_id":"63cd17a159c09271a4ffaab2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"456d986a5bc77fab9321d094a4dba1905199adba8a419a6a0c67686905cd24b5"},"ros-noetic-rosbridge-library-0.11.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pillow","pymongo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674543439140,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3bc966268ccade31a1733a3b546df17b","name":"ros-noetic-rosbridge-library","requires":[],"size":204804,"version":"0.11.16","binstar":{"package_id":"63cd17a3dbdf7335219aac44","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c87b4592dd4443f32dd5249608c55258a7412b3b669acbf0da764805e5e2ba8"},"ros-noetic-polled-camera-1.12.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674542981212,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1bed3b2e023d14b7157c0ba890984274","name":"ros-noetic-polled-camera","requires":[],"size":82233,"version":"1.12.0","binstar":{"package_id":"63cd17a95a31eb90f6bacd9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b3f02c0d13cb67ca5f6b9daff2c2a58cf755fa67fad007a17fb8389330d0d91"},"ros-noetic-image-publisher-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674544195665,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b535056fbe0f3d32a175af1d43dc581b","name":"ros-noetic-image-publisher","requires":[],"size":121246,"version":"1.17.0","binstar":{"package_id":"63cd17abb23346582c6031ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b68ab8e3f4084afae142c03edea95e5e485458285fd1d992fff9a679c19a1f2"},"ros-noetic-image-view-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674544032771,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"06e6262a7371ed12415f1a63bcf332e1","name":"ros-noetic-image-view","requires":[],"size":423076,"version":"1.17.0","binstar":{"package_id":"63cd17ada21649515759f5f2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e909a6a73e6a1ae970a0fe1f77c083fff5b16d270e1d4482ce71d991cef951be"},"ros-noetic-twist-mux-msgs-2.1.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-message-runtime"],"build":"py39he6bf450_9","timestamp":1674594357040,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"09d196cdb7ea4416838a4b7afc7c739d","name":"ros-noetic-twist-mux-msgs","requires":[],"size":57552,"version":"2.1.0","binstar":{"package_id":"63cd17b0c37c80a75bce2ebe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"270b87cc5e02813184c85c6dc2c658f1694a624df268f5fc88e4deec8dd463cb"},"ros-noetic-jackal-base-0.7.4-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-diff-drive-controller","ros-noetic-geometry-msgs","ros-noetic-imu-filter-madgwick","ros-noetic-jackal-msgs","ros-noetic-nmea-msgs","ros-noetic-nmea-navsat-driver","ros-noetic-realtime-tools","ros-noetic-rosserial-python","ros-noetic-rosserial-server","ros-noetic-sensor-msgs","ros-noetic-teleop-twist-joy","ros-noetic-tf","ros-noetic-topic-tools"],"build":"py39hfaf8bd9_3","timestamp":1674547710627,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"78b7e2708d029ff17b14695fb06fbfd2","name":"ros-noetic-jackal-base","requires":[],"size":265078,"version":"0.7.4","binstar":{"package_id":"63cd86f60273ee116ae05ce1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df5982118392182cb9ffea70a30aa732161c9c5e68f9dd94bb9bbe1cb294d9fb"},"ros-noetic-ros-comm-1.15.15-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-ros","ros-noetic-rosbag","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslaunch","ros-noetic-roslisp","ros-noetic-rosmaster","ros-noetic-rosmsg","ros-noetic-rosnode","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostest","ros-noetic-rostopic","ros-noetic-roswtf","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp"],"build":"py39he6bf450_9","timestamp":1674544591683,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9dc1024ffcd425df65edbddf924cb0f9","name":"ros-noetic-ros-comm","requires":[],"size":8809,"version":"1.15.15","binstar":{"package_id":"63cd872bc37c80a75b007dfe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0721a0e9533774fdadc1e10fc8453762fb86e462fa2104edb5dd534fb23b4df6"},"ros-noetic-rqt-tf-tree-0.6.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rospy","ros-noetic-rqt-graph","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","rospkg"],"build":"py39he6bf450_9","timestamp":1674545060238,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da72e541aa17fb3ece2db741dfa491f1","name":"ros-noetic-rqt-tf-tree","requires":[],"size":30074,"version":"0.6.3","binstar":{"package_id":"63cd872ddbdf733521cf2103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09d2d8cff5c44c06616cca6578617046e8a2aa19e8b45e8584d8132788a63b40"},"ros-noetic-rqt-msg-0.4.10-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39he6bf450_9","timestamp":1674546042182,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b9314b60d12e58c6170d7d189fdb59cb","name":"ros-noetic-rqt-msg","requires":[],"size":28126,"version":"0.4.10","binstar":{"package_id":"63cd872edbdf733521cf2113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8098c45fb89b464857ede93fdc96a41bc5a0fca2f1a34627923a81575226c190"},"ros-noetic-common-msgs-1.13.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-diagnostic-msgs","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-stereo-msgs","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674543272496,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8836d8b60ecb33cae699a76a5467d09c","name":"ros-noetic-common-msgs","requires":[],"size":7725,"version":"1.13.1","binstar":{"package_id":"63cd873086de531a28ddc45b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92fafde6e04ab89e5632a6f4ab0cb07da56ae360c718e8021aec27923676a504"},"ros-noetic-diagnostic-common-diagnostics-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-rospy","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546434529,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cbd38a954b78e89db1e8e2a8f63d97bf","name":"ros-noetic-diagnostic-common-diagnostics","requires":[],"size":57234,"version":"1.11.0","binstar":{"package_id":"63cd8731dbdf733521cf2127","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2909aa266d91c681b290dd5753c2add8bae11a4b097bc6aff5fa443e8821884d"},"ros-noetic-laser-geometry-1.6.7-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2"],"build":"py39hb6bd954_9","timestamp":1674546108545,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a53febfe9556c597f2da9bcf5bca1ecd","name":"ros-noetic-laser-geometry","requires":[],"size":61825,"version":"1.6.7","binstar":{"package_id":"63cd873bd0e8c095e203494d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d729038b14a03ab4360f16eceea4da7fc65630ecdf478de04630b0cda5864b0"},"ros-noetic-robot-state-publisher-1.15.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-kdl-parser","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674546349060,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e7724419ae037870dd080b847294ce74","name":"ros-noetic-robot-state-publisher","requires":[],"size":84369,"version":"1.15.2","binstar":{"package_id":"63cd873c5a31eb90f6dfa4b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdc995443f174b96656d0fc9d9b540b449fc001686a5754989c27808a2250535"},"ros-noetic-rqt-reconfigure-0.5.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39he6bf450_9","timestamp":1674546053427,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3ffcdaf9b434175237521993f28fcf7c","name":"ros-noetic-rqt-reconfigure","requires":[],"size":92964,"version":"0.5.5","binstar":{"package_id":"63cd873dc37c80a75b008283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc51c07f3d716ea39f1a040bc48051fdfbd706bcc6ba41c3d70f1850181988c7"},"ros-noetic-rqt-robot-monitor-0.5.14-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39he6bf450_9","timestamp":1674545637323,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fe134cd3111c37bbda4b817e4b9837c3","name":"ros-noetic-rqt-robot-monitor","requires":[],"size":55222,"version":"0.5.14","binstar":{"package_id":"63cd873ed0e8c095e2034995","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"973773f4f85d555c3f8c7eb730b8d36d368eb2e09864573406118f6b85da54c9"},"ros-noetic-interactive-markers-1.12.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674546223372,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3cc1b117a7982eb59156e20c8e4f76ae","name":"ros-noetic-interactive-markers","requires":[],"size":191209,"version":"1.12.0","binstar":{"package_id":"63cd873fa64974fd0925dfa1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"516bdd6980f56713aac34640bdc8589cead972a5b208e1c8e6e80f255152aae5"},"ros-noetic-turtle-tf2-0.2.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-turtlesim"],"build":"py39he6bf450_9","timestamp":1674546135243,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a5799dd9b7a6e10cab9d4ca9f06605c","name":"ros-noetic-turtle-tf2","requires":[],"size":78444,"version":"0.2.3","binstar":{"package_id":"63cd87b259c09271a414f6f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1fb594e678f4ed2c9d4fe2e8b91f999b9fe33f01387aa7d2eec14b8ebc1baa82"},"ros-noetic-rqt-launch-0.4.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslaunch","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39he6bf450_9","timestamp":1674546080255,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"92aa18f43fdfdc432f8535c79a1b95f3","name":"ros-noetic-rqt-launch","requires":[],"size":44208,"version":"0.4.9","binstar":{"package_id":"63cd87b3dbdf733521cf4b27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06fe8c8821c5ed057927801cd97d022025c32c12842bd4739a3dd86c3cf05fd8"},"ros-noetic-turtle-tf-0.2.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlesim"],"build":"py39he6bf450_9","timestamp":1674546325459,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6e4e04b4ed58915c2efc943fd1b9da23","name":"ros-noetic-turtle-tf","requires":[],"size":153311,"version":"0.2.3","binstar":{"package_id":"63cd87b45a31eb90f6dfb5c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0e1827e7d623fec17c758fa211bf0668a9bac4b2a18c15f2336cc119f87e2b7"},"ros-noetic-rqt-dep-0.4.12-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-graph","ros-noetic-rqt-gui-py","rospkg"],"build":"py39he6bf450_9","timestamp":1674544300303,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8b522a858645de321df694a066ee2be6","name":"ros-noetic-rqt-dep","requires":[],"size":47178,"version":"0.4.12","binstar":{"package_id":"63cd87b5989160afcf5d12d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90b616429468539873916745a4218ecc0ffb71e048819a9b15b4b049507bd2f1"},"ros-noetic-rosapi-0.11.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosbridge-library","ros-noetic-rosgraph","ros-noetic-rosnode","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1674544379634,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8bc868c18060cd6643ff154f6c3f36c3","name":"ros-noetic-rosapi","requires":[],"size":134822,"version":"0.11.16","binstar":{"package_id":"63cd8901c37c80a75b01b149","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eedb7b08c0c7945772133f86c84be00bd65d5f86bdec3c568af322d7a4f32a91"},"ros-noetic-image-common-1.12.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-camera-info-manager","ros-noetic-image-transport","ros-noetic-polled-camera"],"build":"py39he6bf450_9","timestamp":1674544066338,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"02b16e7225f07715bf8f1e9b983589fc","name":"ros-noetic-image-common","requires":[],"size":7957,"version":"1.12.0","binstar":{"package_id":"63cd8b4514201bfa45a1a21f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de5ad40a1b024dfd08b31cbfe8b342d3758d84df3424d04481b4d1ff8daf8c87"},"ros-noetic-tf2-tools-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674544979863,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"21fe2ced1bed3f71f19ab03bd7a5b89b","name":"ros-noetic-tf2-tools","requires":[],"size":23048,"version":"0.7.6","binstar":{"package_id":"63cd8b47be293b9e162ebaea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"acd555e23e25e5d2751d759d0e78026914c97eecd688bc30ec62e39e3c81e887"},"ros-noetic-twist-mux-3.1.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-twist-mux-msgs","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674597777234,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c4af06d0b2da23fc79e65366de0360c7","name":"ros-noetic-twist-mux","requires":[],"size":127711,"version":"3.1.3","binstar":{"package_id":"63cd8cc8c37c80a75b03bb72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cc549973b2ed1ebc0eabfb50746b66458cab1eb603ead4e7c234b71e5cc2d10"},"ros-noetic-tf2-sensor-msgs-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674545322246,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"45c506f8d4fcf17ff67404ac2fcaa75f","name":"ros-noetic-tf2-sensor-msgs","requires":[],"size":16502,"version":"0.7.6","binstar":{"package_id":"63cd8d0a68b198bb95115bb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b03a5001cc9abe2c7cba95183708801702a194765d246e83bbc4dc7aca04a32"},"ros-noetic-forward-command-controller-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674545575155,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f30412092941231f65965c9d0ae693d4","name":"ros-noetic-forward-command-controller","requires":[],"size":14048,"version":"0.21.0","binstar":{"package_id":"63cd8d96d0e8c095e205cfbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edfeabf1e6457b237fc30c24e6e79812e744060cf162bbcaadbf9541c72fc384"},"ros-noetic-control-toolbox-1.19.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","tinyxml"],"build":"py39he6bf450_9","timestamp":1674545501539,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"78db2236edf89aae7948fe4c2f90511e","name":"ros-noetic-control-toolbox","requires":[],"size":139763,"version":"1.19.0","binstar":{"package_id":"63cd8d99b23346582c7854be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0e13943ee775da51a1327dd1c091c86e15415975ae5b5bbf9dc9a9f34c2e38f"},"ros-noetic-depth-image-proc-1.17.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-eigen-conversions","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39hb6bd954_9","timestamp":1674545376711,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a35c47670f11b6c5266a1a15fd1baf80","name":"ros-noetic-depth-image-proc","requires":[],"size":287374,"version":"1.17.0","binstar":{"package_id":"63cd8d9a2ff78d332eb6168e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5fd1f966c177f996f5edc0c81bfab893f16416022a7e349750fb710ebf672fb"},"ros-noetic-image-proc-1.17.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hb6bd954_9","timestamp":1674545143448,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"fa1ddc8497b1545cc4a9239ced7267f1","name":"ros-noetic-image-proc","requires":[],"size":262359,"version":"1.17.0","binstar":{"package_id":"63cd8d9bd0e8c095e205d00a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c93f22dc091c157c848871020af792f68054a8dafe33ce70f53a4d3ccaba2160"},"ros-noetic-actionlib-tutorials-0.2.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674544347584,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0ca28fa3ac089318bb88eee200803b1f","name":"ros-noetic-actionlib-tutorials","requires":[],"size":463254,"version":"0.2.0","binstar":{"package_id":"63cd934a989160afcf5f665d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a29d2e81f8786527017659fcbb74b8370db94c4f519bd31e097510b0314d3dbc"},"ros-noetic-rqt-pose-view-0.5.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyopengl","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-gl-dependency","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","rospkg","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674546509709,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8725df2baea2828dd9d541dac523382c","name":"ros-noetic-rqt-pose-view","requires":[],"size":37122,"version":"0.5.11","binstar":{"package_id":"63cd934b68b198bb9512050b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f62c5d45853f8f45edd00ac42e49ad1966a728537006b98390b7dfb199499df9"},"ros-noetic-ros-core-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-class-loader","ros-noetic-cmake-modules","ros-noetic-common-msgs","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-ros","ros-noetic-ros-comm","ros-noetic-rosbag-migration-rule","ros-noetic-rosconsole","ros-noetic-rosconsole-bridge","ros-noetic-roscpp-core","ros-noetic-rosgraph-msgs","ros-noetic-roslisp","ros-noetic-rospack","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39he6bf450_9","timestamp":1674545367468,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"83f79b615448f6d44c6ca7d88a57f6b3","name":"ros-noetic-ros-core","requires":[],"size":8405,"version":"1.5.0","binstar":{"package_id":"63cd934c5a31eb90f6e40387","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61e8e1059d06d12058f7abd9b99dddbfbcdea2a28eb05a6fdcf637ad3f7f93ec"},"ros-noetic-rqt-srv-0.4.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-msg"],"build":"py39he6bf450_9","timestamp":1674547668163,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f8ec316d5b481e9002fefa9fbccd30b5","name":"ros-noetic-rqt-srv","requires":[],"size":17015,"version":"0.4.9","binstar":{"package_id":"63cd934e8ff1ad2742405c16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14c3f8adae137dfeaf41d38adb6e3414dad5a122fc177eba2913f60ba36957ae"},"ros-noetic-geometry-tutorials-0.2.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtle-tf","ros-noetic-turtle-tf2"],"build":"py39he6bf450_9","timestamp":1674547865603,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1b1d8c77fa10c922793ed66b093c88bc","name":"ros-noetic-geometry-tutorials","requires":[],"size":9686,"version":"0.2.3","binstar":{"package_id":"63cd93d6d0e8c095e208c53d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae07023b0805c49cbaf1d5716703fe0c93de1fa484c9fe8f29d29c729bf1ac88"},"ros-noetic-jackal-description-0.8.5-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-lms1xx","ros-noetic-pointgrey-camera-description","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39hfaf8bd9_3","timestamp":1674548044629,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7bfa2de620f5f2a52d8ddcebe89da27c","name":"ros-noetic-jackal-description","requires":[],"size":919899,"version":"0.8.5","binstar":{"package_id":"63cd93d8a64974fd09273cb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc8c71b083e379e68171a403a9cdfe94a544cdbfdf045fd7ee2e0a4de8f249cb"},"ros-noetic-diagnostics-1.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-analysis","ros-noetic-diagnostic-common-diagnostics","ros-noetic-diagnostic-updater","ros-noetic-self-test"],"build":"py39he6bf450_9","timestamp":1674547942206,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"76653d1eaae40d79227d010d15a39893","name":"ros-noetic-diagnostics","requires":[],"size":9166,"version":"1.11.0","binstar":{"package_id":"63cd93da989160afcf5f74f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7944172f9a67fa2848c1591e8df9809beccdf023ce67fe23f8a604d0d16c04de"},"ros-noetic-interactive-marker-tutorials-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674548086616,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"abfa837d58152e0fbf61ab07fb0f2f80","name":"ros-noetic-interactive-marker-tutorials","requires":[],"size":156955,"version":"0.11.0","binstar":{"package_id":"63cd93dc5a31eb90f6e4590e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc720bbd63ff3f8e9b4e9c3d5b0db1983eec0b1b9127ee40f2621ac642eabd09"},"ros-noetic-rqt-action-0.4.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-rqt-msg","ros-noetic-rqt-py-common"],"build":"py39he6bf450_9","timestamp":1674547762889,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"73345f256092d92272eb3e1109591f7e","name":"ros-noetic-rqt-action","requires":[],"size":17039,"version":"0.4.9","binstar":{"package_id":"63cd93dedbdf733521d5ab42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a758f6cfc66ea6d77068fd2003d92ab36f17532f84ab8f4a94323b0ae8833e4a"},"ros-noetic-compressed-image-transport-1.14.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39he6bf450_9","timestamp":1674544503344,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4513f7478748dfdeac86e84dd61bd9a9","name":"ros-noetic-compressed-image-transport","requires":[],"size":154309,"version":"1.14.0","binstar":{"package_id":"63cd94aec37c80a75b0717dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f8f36f8106f3ea01062d1ecc099ddd4758d7a569276b1267ab0dc4049d7795f"},"ros-noetic-imu-sensor-controller-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674545205163,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4155db462e5f8534e32a163b6cda4423","name":"ros-noetic-imu-sensor-controller","requires":[],"size":64284,"version":"0.21.0","binstar":{"package_id":"63cd94b1d0e8c095e20911ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f47bd71fce4d02895bce09359b3f6fce368e9dace62ae0e87e26007d549f3fd2"},"ros-noetic-force-torque-sensor-controller-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674545305324,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"363365632be84ccf38264d999c15b764","name":"ros-noetic-force-torque-sensor-controller","requires":[],"size":63133,"version":"0.21.0","binstar":{"package_id":"63cd94b668b198bb951221b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75c93ac700b27388fc252f3cff708f2625605cb477e3f77781f786a3f9b50617"},"ros-noetic-common-tutorials-0.2.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-tutorials","ros-noetic-nodelet-tutorial-math","ros-noetic-pluginlib-tutorials","ros-noetic-turtle-actionlib"],"build":"py39he6bf450_9","timestamp":1674545283742,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f857b69efd0ee56f272beab6ff7733ef","name":"ros-noetic-common-tutorials","requires":[],"size":9074,"version":"0.2.0","binstar":{"package_id":"63cd94e6989160afcf5ff522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6508aab04fc57414acf850437472195edff35bad4fa8556ff848cb987ce95ee8"},"ros-noetic-joint-state-controller-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39he6bf450_9","timestamp":1674545013635,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bf88b6f6e259d4cae700e9db7e4521f1","name":"ros-noetic-joint-state-controller","requires":[],"size":68457,"version":"0.21.0","binstar":{"package_id":"63cd953cc37c80a75b0756bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b782d10106bb9ad67adbd3a7acec46237db1273d99c32fa3234f4f32b4aff9b8"},"ros-noetic-rqt-plot-0.4.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-qwt-dependency","ros-noetic-rosgraph","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-std-msgs","rospkg"],"build":"py39he6bf450_9","timestamp":1674545104284,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ddd61481a0384fa09033ba6bf8bcd91a","name":"ros-noetic-rqt-plot","requires":[],"size":74730,"version":"0.4.13","binstar":{"package_id":"63cd953fd0e8c095e20948c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8405304c5618704f8d22c27105c1694843f245fb6f51c0c6ff3d2333a2a6d0bf"},"ros-noetic-rqt-image-view-0.4.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674543202135,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d9b892451820ab5a103b18ad34aed280","name":"ros-noetic-rqt-image-view","requires":[],"size":79759,"version":"0.4.16","binstar":{"package_id":"63cd95418ff1ad2742410e13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"748ded878c693176aaf467176a06ed406f114db48a46c5fdd6e7e1be8ba9817f"},"ros-noetic-ros-base-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-bond-core","ros-noetic-dynamic-reconfigure","ros-noetic-nodelet-core","ros-noetic-ros-core"],"build":"py39he6bf450_9","timestamp":1674546468064,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d1014d47e1647de307be43184ef50853","name":"ros-noetic-ros-base","requires":[],"size":8351,"version":"1.5.0","binstar":{"package_id":"63cd9565d0e8c095e20950c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"405a5b4f03a5464924449d9f1717c8ea60718158099c31037944c9290a6d11f7"},"ros-noetic-ros-control-0.19.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-combined-robot-hw","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-realtime-tools","ros-noetic-transmission-interface"],"build":"py39he6bf450_9","timestamp":1674545347224,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8a8390df31b106894ba22e511787f485","name":"ros-noetic-ros-control","requires":[],"size":8330,"version":"0.19.6","binstar":{"package_id":"63cd95f2b23346582c79c7dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"385554a036282f6b6a7079c1b494039885d30c2831c76356294b9822cd99c9d0"},"ros-noetic-rosbridge-server-0.11.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["autobahn","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosauth","ros-noetic-rosbridge-library","ros-noetic-rosbridge-msgs","ros-noetic-rospy","tornado","twisted"],"build":"py39he6bf450_9","timestamp":1674545057871,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"04d0d5cb63c77628fefee8c12ae4ca3c","name":"ros-noetic-rosbridge-server","requires":[],"size":53752,"version":"0.11.16","binstar":{"package_id":"63cd95f55a31eb90f6e4bfb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65f9823f4ab4e6d7cdce724d9532eb0556b6006f7d3a890cb6978593355b8125"},"ros-noetic-position-controllers-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674546390536,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"552d850a4e562521fb222c27238c1505","name":"ros-noetic-position-controllers","requires":[],"size":78130,"version":"0.21.0","binstar":{"package_id":"63cd9a670273ee116ae47e63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f00f69b62b1718433609873152db9f37838291390398f1bf91d76cc33a321707"},"ros-noetic-velocity-controllers-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674546284803,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"652b14a335f0dc2c4749b19f61ff22fe","name":"ros-noetic-velocity-controllers","requires":[],"size":98394,"version":"0.21.0","binstar":{"package_id":"63cd9a69dbdf733521d84247","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0578588932fa32c8c41b4f7667ea6fd162abb1a4803b1f509c2176c4e956658"},"ros-noetic-amcl-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674546165854,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b9050ecfc4f778d0519272c17859297b","name":"ros-noetic-amcl","requires":[],"size":330094,"version":"1.17.3","binstar":{"package_id":"63cd9a6d2ff78d332eb95e25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faf1b1be099a691bd3042f99c70a9af7c07fd1dd0076e571d439afff07cfb836"},"ros-noetic-diff-drive-controller-0.21.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-controller-interface","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-tf","ros-noetic-urdf"],"build":"py39hb6bd954_9","timestamp":1674546707194,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"800de559f60d79bbcf674e1052918561","name":"ros-noetic-diff-drive-controller","requires":[],"size":173085,"version":"0.21.0","binstar":{"package_id":"63cd9a6fdbdf733521d84319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e294225d2b8134a64488568233a969b27e9313def9f79b9b549f5f166b1e7ad5"},"ros-noetic-gmapping-1.4.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-openslam-gmapping","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546217742,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c73c6cb2a092bac5fa0de0863b057ecb","name":"ros-noetic-gmapping","requires":[],"size":420757,"version":"1.4.2","binstar":{"package_id":"63cd9a89dbdf733521d847e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3b926a287ad3cb4e601995fbc4f74328597a5f259bbb943181f611435b44b0bf"},"ros-noetic-gazebo-ros-2.9.2-py39h5fed13a_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=7.5.0","libgcc-ng >=7.5.0","libstdcxx-ng >=7.5.0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","tbb >=2021.7.0","tinyxml"],"build":"py39h5fed13a_9","timestamp":1674546841683,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8791c2d2a7730fc4541424562ccd0afd","name":"ros-noetic-gazebo-ros","requires":[],"size":484372,"version":"2.9.2","binstar":{"package_id":"63cd9b9b8ff1ad27424363d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16d5c6142c0b39b7e92cdf8017aafc4dc8cb91d0d39d4c2376c4b965813dc5ba"},"ros-noetic-warehouse-ros-0.9.5-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39hb6bd954_9","timestamp":1674546479224,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b4e14fcad52abcacbd478a3494151c96","name":"ros-noetic-warehouse-ros","requires":[],"size":122297,"version":"0.9.5","binstar":{"package_id":"63cd9b9d989160afcf60f1c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ce282fd6d029071e56908853bd43dc22a2909ac4dbcd8b53fbb377ec8782f8b"},"ros-noetic-nmea-navsat-driver-0.6.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nmea-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674597668351,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d359978c65847556d8c2666a11e5f45f","name":"ros-noetic-nmea-navsat-driver","requires":[],"size":42403,"version":"0.6.1","binstar":{"package_id":"63cd9d53c37c80a75b0a4686","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a562e3a75172c3ab907f8e126d9fde95e830fcaf94c22aa448e8b770b91f9f8"},"ros-noetic-geometry2-0.7.6-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-bullet","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-tf2-ros","ros-noetic-tf2-sensor-msgs","ros-noetic-tf2-tools"],"build":"py39he6bf450_9","timestamp":1674546124764,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8a26fc51e6aec3ef46d543cda9cdb89d","name":"ros-noetic-geometry2","requires":[],"size":8259,"version":"0.7.6","binstar":{"package_id":"63cd9d55c37c80a75b0a4688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"235da61dd8f307894620d069f692f67e1311362a27fa7451b5444d0edd9cf0fa"},"ros-noetic-tf-conversions-1.13.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-kdl-conversions","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546297395,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a9c733d4fe743b5cd87b9b5e4d06e137","name":"ros-noetic-tf-conversions","requires":[],"size":26747,"version":"1.13.2","binstar":{"package_id":"63cd9e5168b198bb95130c53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5b86166f72f1db8f86dc0fd62bdfa17dddf7805d1a552eea6e532389b67cd94"},"ros-noetic-rqt-nav-view-0.5.7-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546174139,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e2993af6c48d6280c2ade81c92330115","name":"ros-noetic-rqt-nav-view","requires":[],"size":36189,"version":"0.5.7","binstar":{"package_id":"63cd9e53912363225bcece18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b944aaf54f5933a62160ce1e40f67ed7bf91b8a89fef83db40a42b73d28c8a6"},"ros-noetic-pcl-ros-1.7.4-py39h2400c48_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","xorg-libx11","xorg-libxext"],"build":"py39h2400c48_9","timestamp":1674546981134,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"59efa118e09e17f3b723060305fc2d88","name":"ros-noetic-pcl-ros","requires":[],"size":1948575,"version":"1.7.4","binstar":{"package_id":"63cd9e58dbdf733521daa1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17b31c5c915d463c310ca419bbea2c1e47384341d78c6569aaa81c046152be6c"},"ros-noetic-stereo-image-proc-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-proc","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-stereo-msgs"],"build":"py39he6bf450_9","timestamp":1674547185294,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"802aaad4e5a8affc4b5fafd601c71458","name":"ros-noetic-stereo-image-proc","requires":[],"size":284377,"version":"1.17.0","binstar":{"package_id":"63cd9e5a989160afcf612380","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"294aa797a5560e6f790f1506940581c00bf4a34fa8798ce8991501d5df27de61"},"ros-noetic-imu-filter-madgwick-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674546464254,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b34c188c56fe9a8a13d1f48150c78edc","name":"ros-noetic-imu-filter-madgwick","requires":[],"size":206012,"version":"1.2.5","binstar":{"package_id":"63cda06bb23346582c7b4d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b31cb3ec1e14d2b989204ea7ade99842a375a1a1b2633a09df55af370b9a7fb9"},"ros-noetic-imu-complementary-filter-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546603426,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7753d55ec98adc57dd6982042ca33036","name":"ros-noetic-imu-complementary-filter","requires":[],"size":139197,"version":"1.2.5","binstar":{"package_id":"63cda06ccd65eb0e14ab1e74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"570a4799633544cf63fed8c29b71dae7b87c08667566f1b2098383b91c64061b"},"ros-noetic-hector-trajectory-server-0.5.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hector-map-tools","ros-noetic-hector-nav-msgs","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674546733587,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a593878d9ba7ab53c302126e0700bcfa","name":"ros-noetic-hector-trajectory-server","requires":[],"size":66970,"version":"0.5.2","binstar":{"package_id":"63cda06dedf45d7c2ea7414b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41a798f1071a3f2460aea4dc9d801e52e8fdb0bbf19afc914333ef541096dfe8"},"ros-noetic-joint-trajectory-controller-0.21.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-angles","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-trajectory-msgs","ros-noetic-urdf"],"build":"py39hb6bd954_9","timestamp":1674546552691,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8cd116ade0f9bfec1654c9539ab26613","name":"ros-noetic-joint-trajectory-controller","requires":[],"size":302332,"version":"0.21.0","binstar":{"package_id":"63cda7a0912363225bd0c309","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb5b97b5f3ebfd8c8984efab0d5b52ac8ffecf059e75adf040bc3a54c7778c39"},"ros-noetic-image-transport-plugins-1.14.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-compressed-depth-image-transport","ros-noetic-compressed-image-transport","ros-noetic-theora-image-transport"],"build":"py39he6bf450_9","timestamp":1674545184104,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"36b17ac297c3c65d63d133c173cec58b","name":"ros-noetic-image-transport-plugins","requires":[],"size":9828,"version":"1.14.0","binstar":{"package_id":"63cda859cd65eb0e14acab7f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"344a76aca835c8cb60530d00bcc19341cd221d2e295331815b5b92d8cf492236"},"ros-noetic-robot-localization-2.7.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-cmake-modules","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-eigen-conversions","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39he6bf450_9","timestamp":1674546402743,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f00156ace5bfd201a54ef72f0b28d10a","name":"ros-noetic-robot-localization","requires":[],"size":792786,"version":"2.7.4","binstar":{"package_id":"63cda8b5d0e8c095e212df59","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86d3dca853e0380fef876755a39378ccd22abc623bfe640ae13c84b9d954a3c3"},"ros-noetic-image-rotate-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674546642069,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a70fa92ae16d1cfc38f92797762c85f6","name":"ros-noetic-image-rotate","requires":[],"size":133503,"version":"1.17.0","binstar":{"package_id":"63cda8bf5a31eb90f6ea475b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3afe68aad23a53fe49207c2538288ff9ce34158eb33d54a87074d502ef566ead"},"ros-noetic-gripper-action-controller-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674546345901,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"665182c977fdcd8c03d834594e902ca6","name":"ros-noetic-gripper-action-controller","requires":[],"size":141147,"version":"0.21.0","binstar":{"package_id":"63cdab045a31eb90f6eb1139","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"609d2596f79048d65564feb019b44ec9c99a0a03505b50a2ce05aced9ded421a"},"ros-noetic-rqt-bag-plugins-0.5.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pillow","pycairo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-plot","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674546153720,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bf8d1b5d1451a8922c15bab0e96b3330","name":"ros-noetic-rqt-bag-plugins","requires":[],"size":50266,"version":"0.5.1","binstar":{"package_id":"63cdab0c912363225bd2787a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93c020391afdf3be9641cf6bcf1461597aa272648f2e5bff22aa1158ad4df419"},"ros-noetic-ros-numpy-0.0.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674598659713,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6963c6eedb5fe701047c017c3ab69652","name":"ros-noetic-ros-numpy","requires":[],"size":35659,"version":"0.0.5","binstar":{"package_id":"63cdad600273ee116ae82275","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3b2eca8fa5605e712bc2f67839958398e2bda9386d496b3f0ef212ad25bdd16"},"ros-noetic-rosbridge-suite-0.11.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosbridge-library","ros-noetic-rosbridge-server"],"build":"py39he6bf450_9","timestamp":1674546027676,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ba5a60c7f26f99fc6a1e45b31b500086","name":"ros-noetic-rosbridge-suite","requires":[],"size":8512,"version":"0.11.16","binstar":{"package_id":"63cdad67c37c80a75b0fb239","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6049bd941a939da9a025144ba451d114ff896b1a4a843c2f30dbfd96f94724a4"},"ros-noetic-mbf-utility-0.4.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674594345282,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5e97d734a66fc73a3417a2de02da7c2e","name":"ros-noetic-mbf-utility","requires":[],"size":37867,"version":"0.4.0","binstar":{"package_id":"63cdad748ff1ad274248812f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5db6805d172fe010daef41108e1ad81f19a7c554a61abe87b10bf28a6747d15c"},"ros-noetic-geometry-1.13.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-eigen-conversions","ros-noetic-kdl-conversions","ros-noetic-tf","ros-noetic-tf-conversions"],"build":"py39he6bf450_9","timestamp":1674547857723,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cbf03e9878cb994e548ec324ddc8aa31","name":"ros-noetic-geometry","requires":[],"size":9548,"version":"1.13.2","binstar":{"package_id":"63cdb1592b70bce8309906fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7968ef90426ed4d460a21f8f235428f9846cb8c5f8b9b33c0ff59a57c591fd7f"},"ros-noetic-velodyne-gazebo-plugins-1.0.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674590421083,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f06feb2f2ef64a445865fd6945744343","name":"ros-noetic-velodyne-gazebo-plugins","requires":[],"size":184630,"version":"1.0.13","binstar":{"package_id":"63cdb2ccc37c80a75b11b496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5174e7c124957434da1ba904a2f478051a57f400dfa5672ef8f8d8c6ee40a96"},"ros-noetic-perception-pcl-1.7.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pcl-ros"],"build":"py39he6bf450_9","timestamp":1674547653017,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54d7e6a9169c08fffbbb56319b88e4a0","name":"ros-noetic-perception-pcl","requires":[],"size":9802,"version":"1.7.4","binstar":{"package_id":"63cdb2d08ff1ad27424a71a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a62df78c01d7e02168c01e836526d96a3857103801995a58f7bc791b98e08c2"},"ros-noetic-pointgrey-camera-description-0.15.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674594286457,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"7144b0ac5668358c3087a59589396383","name":"ros-noetic-pointgrey-camera-description","requires":[],"size":34979,"version":"0.15.1","binstar":{"package_id":"63cdb2d20273ee116ae9004d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e59cbd8979ed00e10db99fe2fb85243f631a09b68f48a0a6fa7eefcc4b54d6d"},"ros-noetic-turtlebot3-bringup-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-hls-lfcd-lds-driver","ros-noetic-joint-state-publisher","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-rosserial-python","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-msgs","ros-noetic-turtlebot3-teleop"],"build":"py39he6bf450_9","timestamp":1674599132645,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"33784192b2e5ffdc91f0c2c40766aed4","name":"ros-noetic-turtlebot3-bringup","requires":[],"size":69510,"version":"1.2.5","binstar":{"package_id":"63cdb47b5a31eb90f6ed1d57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0800eb65ba5699158cf4826e53fe17376e8ead59d7bb15286b19edfea229fbdb"},"ros-noetic-turtlebot3-fake-1.3.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlebot3-msgs"],"build":"py39he6bf450_9","timestamp":1674598041860,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ede06e4c0adf806b90d98dda0adbb7c2","name":"ros-noetic-turtlebot3-fake","requires":[],"size":56319,"version":"1.3.2","binstar":{"package_id":"63cdb47d8ff1ad27424b1dd6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40a50fc062a7fe44a82559b1e3bd913e11d1155229edafc6e3579b88fbfae05b"},"ros-noetic-costmap-2d-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostest","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39he6bf450_9","timestamp":1674554600891,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0a3e623ea26e6562765891bffa7d6377","name":"ros-noetic-costmap-2d","requires":[],"size":655191,"version":"1.17.3","binstar":{"package_id":"63cdb4a5912363225bd4f4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"212d8828aa9ffcfab9ed59e9eccd5b27ee6e94ae0bcb4360fb1cf3509a6cba40"},"ros-noetic-gazebo-ros-control-2.9.2-py39h5fed13a_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=7.5.0","libgcc-ng >=7.5.0","libstdcxx-ng >=7.5.0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-control-toolbox","ros-noetic-controller-manager","ros-noetic-gazebo-ros","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-transmission-interface","ros-noetic-urdf","tbb >=2021.7.0"],"build":"py39h5fed13a_9","timestamp":1674556899825,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cbf1c4962ee174b323e8dd5cf66de2bf","name":"ros-noetic-gazebo-ros-control","requires":[],"size":289932,"version":"2.9.2","binstar":{"package_id":"63cdb4a714201bfa45a546c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b3b8eaeaa7b715393d8c976e1d343f0d4ade896aa3df88c934d4cfc3207a87b"},"ros-noetic-laser-filters-1.9.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-dynamic-reconfigure","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674554907498,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0118f4206c75818b3fd0e1c3d44eff6e","name":"ros-noetic-laser-filters","requires":[],"size":867351,"version":"1.9.0","binstar":{"package_id":"63cdb4a9c37c80a75b121f2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad94381e663901164368f8fd47bbeafec514251a2fa6f9a3e15127d0e0925344"},"ros-noetic-moveit-resources-fanuc-moveit-config-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-fanuc-description","ros-noetic-robot-state-publisher","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674554690936,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bc714269500c5efc701c7b814f9b5d45","name":"ros-noetic-moveit-resources-fanuc-moveit-config","requires":[],"size":25439,"version":"0.8.2","binstar":{"package_id":"63cdb4aad0e8c095e217246d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fb58b950a85f022755193da679752b6e931f9fb3fa8faffb6d7276b865ab0fd"},"ros-noetic-effort-controllers-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674554908053,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e822eb4a0fce89a845b7354769767a67","name":"ros-noetic-effort-controllers","requires":[],"size":116196,"version":"0.21.0","binstar":{"package_id":"63cdb698b23346582c7fa779","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36066516ae2091e6f0eb7d70002a63406b314f2c02e4541bc10aba95e97a7107"},"ros-noetic-ackermann-steering-controller-0.21.0-py39h294e282_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-diff-drive-controller","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-tf","urdfdom >=3.1.0,<3.2.0a0"],"build":"py39h294e282_9","timestamp":1674555043377,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"abbd7761228094c57a939395648b1a6f","name":"ros-noetic-ackermann-steering-controller","requires":[],"size":101711,"version":"0.21.0","binstar":{"package_id":"63cdb699c37c80a75b12bcef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae35f0ccf2af19ec7f7b084aae07fe89238d9f301466d8e6b13df995e722313f"},"ros-noetic-laser-assembler-1.7.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674554935496,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49f72f8bdd5cfed3ece7ad142fa31a40","name":"ros-noetic-laser-assembler","requires":[],"size":613629,"version":"1.7.8","binstar":{"package_id":"63cdb69dcd65eb0e14b0e502","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"877e28f1bb2ab466d6d6a1f564780779b5e17ec6e39cdb8c18311fa61ef8cd28"},"ros-noetic-interactive-marker-twist-server-1.2.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674587761934,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"54aeb063ae2a1a5dff9c8e8e491f2843","name":"ros-noetic-interactive-marker-twist-server","requires":[],"size":44949,"version":"1.2.2","binstar":{"package_id":"63cdb6acd0e8c095e21800be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93046640325ad6ae82be2332c2866e9e2015084413325aa35be1af0a2548fc0b"},"ros-noetic-image-pipeline-1.17.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-image-publisher","ros-noetic-image-rotate","ros-noetic-image-view","ros-noetic-stereo-image-proc"],"build":"py39he6bf450_9","timestamp":1674547760076,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0ff8f98735b5b01ba13bf9fe4896148b","name":"ros-noetic-image-pipeline","requires":[],"size":10287,"version":"1.17.0","binstar":{"package_id":"63cdb7ed2ff78d332ec1945c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66d99447401d646c9d9149dc308c8be0705b7c8118078664ab9273637d7a2d58"},"ros-noetic-robot-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-diagnostics","ros-noetic-executive-smach","ros-noetic-filters","ros-noetic-geometry","ros-noetic-joint-state-publisher","ros-noetic-kdl-parser","ros-noetic-robot-state-publisher","ros-noetic-ros-base","ros-noetic-urdf","ros-noetic-urdf-parser-plugin","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674550446675,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"29c2801804bb2ff43ba4cf101419264b","name":"ros-noetic-robot","requires":[],"size":9363,"version":"1.5.0","binstar":{"package_id":"63cdc3e8dbdf733521eb8531","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa3644ad3857dfb8423dace14863a44f306562562806df39660b1f2abf83f395"},"ros-noetic-velodyne-simulator-1.0.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-velodyne-description","ros-noetic-velodyne-gazebo-plugins"],"build":"py39he6bf450_9","timestamp":1674591446432,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bcaad7da74740e508929ff0c65e9c737","name":"ros-noetic-velodyne-simulator","requires":[],"size":10418,"version":"1.0.13","binstar":{"package_id":"63cdc3ead0e8c095e21e2fc7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f8c8cd0e40b38a8a167abe719ee52049e001d6b0a5f2c48ea665b7d6bd805f5"},"ros-noetic-ros-controllers-0.21.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ackermann-steering-controller","ros-noetic-diff-drive-controller","ros-noetic-effort-controllers","ros-noetic-force-torque-sensor-controller","ros-noetic-forward-command-controller","ros-noetic-gripper-action-controller","ros-noetic-imu-sensor-controller","ros-noetic-joint-state-controller","ros-noetic-joint-trajectory-controller","ros-noetic-position-controllers","ros-noetic-velocity-controllers"],"build":"py39he6bf450_9","timestamp":1674556693115,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c6412be57584c2f093b2aaedc5c85165","name":"ros-noetic-ros-controllers","requires":[],"size":9126,"version":"0.21.0","binstar":{"package_id":"63cdc3f0d0e8c095e21e30a3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c11b29b225f58eaf938c747080ea020abed0a8bc3b36b9a28cf8d525a924a4f3"},"ros-noetic-turtlebot3-example-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-msgs","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674599854770,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3f4827463a1be3ad642f84b1692d4f88","name":"ros-noetic-turtlebot3-example","requires":[],"size":63380,"version":"1.2.5","binstar":{"package_id":"63cdc4a8cd65eb0e14b57d68","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"334fc43fcd9cb62aafcc02e506cb85823fcf8d113b8c55db200c5e6d7c968af8"},"ros-noetic-turtlebot3-slam-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-turtlebot3-bringup"],"build":"py39he6bf450_9","timestamp":1674599895505,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e4857e3e76a385e5d02a20d32f92fcc8","name":"ros-noetic-turtlebot3-slam","requires":[],"size":54960,"version":"1.2.5","binstar":{"package_id":"63cdc4acdbdf733521ebf789","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"729f9551daedf4c6bc2d6619072b7fc36f30807f9ac13ef284f0596e78f85a7d"},"ros-noetic-laser-pipeline-1.6.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-laser-assembler","ros-noetic-laser-filters","ros-noetic-laser-geometry"],"build":"py39he6bf450_9","timestamp":1674556716631,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5d031d25eb5ab5cccb9c1c8f4663cacf","name":"ros-noetic-laser-pipeline","requires":[],"size":9114,"version":"1.6.4","binstar":{"package_id":"63cdd077dbdf733521efe04d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1fd7610b0025a81ba4e59bb7bbe082e8fbd08334a4a55db799ec503ab48a093"},"ros-noetic-perception-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-common","ros-noetic-image-pipeline","ros-noetic-image-transport-plugins","ros-noetic-laser-pipeline","ros-noetic-perception-pcl","ros-noetic-ros-base","ros-noetic-vision-opencv"],"build":"py39he6bf450_9","timestamp":1674557782283,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b3b52e6d8498ca0b48d0cba2eb53c7e8","name":"ros-noetic-perception","requires":[],"size":10290,"version":"1.5.0","binstar":{"package_id":"63cdd7e086de531a28e0ea71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53d6ea77354a432a59e9fb1eb7a79fd74f5de3599a7ee4c216ec9ae6e6177653"},"ros-noetic-rviz-1.14.19-py39h5765d9a_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-interactive-markers","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-media-export","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-python-qt-binding","ros-noetic-resource-retriever","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","ros-noetic-visualization-msgs","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.0,<3.2.0a0","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h5765d9a_9","timestamp":1674554320803,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c76501a7114680e3bb12d1d94553b5a0","name":"ros-noetic-rviz","requires":[],"size":3326588,"version":"1.14.19","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"441a98ec75e4e7e61bdf49313e0cf25e02e9ad9d9a1e3e376cda59fcd2a90955"},"ros-noetic-rqt-rviz-0.7.0-py39hb6bd954_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39hb6bd954_9","timestamp":1674555172055,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a5a683580141fed2a4ef0b6d8099a484","name":"ros-noetic-rqt-rviz","requires":[],"size":61090,"version":"0.7.0","binstar":{"package_id":"63cddf59dbdf733521f677f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"551d9fb3ec321968602121604b560dbcc1a337c062eae18110bc81e72dc21f8c"},"ros-noetic-rviz-python-tutorial-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz"],"build":"py39he6bf450_9","timestamp":1674554909645,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"03331e4675a20b2bbdfa6afd0c39b132","name":"ros-noetic-rviz-python-tutorial","requires":[],"size":19615,"version":"0.11.0","binstar":{"package_id":"63cddfa85a31eb90f6f8c65b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8663a9bdc3054d06992c32938d8e5df94fc5ec5ba8757b98ae307fdd9452063"},"ros-noetic-jackal-viz-0.4.0-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-rviz"],"build":"py39hfaf8bd9_3","timestamp":1674555140445,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"17ec8ea29f12f457296b51333b8ce3ab","name":"ros-noetic-jackal-viz","requires":[],"size":17380,"version":"0.4.0","binstar":{"package_id":"63cddfaa912363225bdf3cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1ff39e91a1467f27ccf95551b6c23bdbb0c36842d890f5c52109967d9664b39"},"ros-noetic-librviz-tutorial-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674554997297,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"10f848141d1d3eb3619f7ac323afdd57","name":"ros-noetic-librviz-tutorial","requires":[],"size":46105,"version":"0.11.0","binstar":{"package_id":"63cddfab0273ee116aefaea9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"982a27967e44c3a59118480774b15ae468d8e57ec2517edbb4865672357d6db2"},"ros-noetic-rviz-plugin-tutorials-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674555131107,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"719b48d6163c5cbc3c797fa9e635c974","name":"ros-noetic-rviz-plugin-tutorials","requires":[],"size":156952,"version":"0.11.0","binstar":{"package_id":"63cddfad989160afcf69fcff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b585abb0b04b0b9e54014ee1857500449f6b594ef0356390bbb2222a70cde06"},"ros-noetic-urdf-tutorial-0.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674555107211,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2ad328055bed9ad36e9ef011139eacca","name":"ros-noetic-urdf-tutorial","requires":[],"size":823633,"version":"0.5.0","binstar":{"package_id":"63cddfaf59c09271a4221fe1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c03a19429e06b2e33e5da36e7176938c9336630e77b66ac8ae9129e42471997e"},"ros-noetic-moveit-resources-panda-moveit-config-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-moveit-resources-panda-description","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674554913765,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ac6bda11600a844f0133371332937ae5","name":"ros-noetic-moveit-resources-panda-moveit-config","requires":[],"size":29831,"version":"0.8.2","binstar":{"package_id":"63cde1a159c09271a422989e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2513b6ce72a830f5a4cf5bfd332f549d6dd8d28ca1726abbcf61b5602385bcc7"},"ros-noetic-jackal-desktop-0.4.0-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-viz"],"build":"py39hfaf8bd9_3","timestamp":1674556756153,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"de79a0ed0104630438095b41cf82e5b0","name":"ros-noetic-jackal-desktop","requires":[],"size":9788,"version":"0.4.0","binstar":{"package_id":"63cde1a4b23346582c86752a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82a57d1f27344fb64a3a0b7f06e9928a3d3fd697317c073812e2e64b413395f4"},"ros-noetic-visualization-tutorials-0.11.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-marker-tutorials","ros-noetic-librviz-tutorial","ros-noetic-rviz-plugin-tutorials","ros-noetic-rviz-python-tutorial","ros-noetic-visualization-marker-tutorials"],"build":"py39he6bf450_9","timestamp":1674556843935,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"feb9862028b6f9e9e29203f2914bb1af","name":"ros-noetic-visualization-tutorials","requires":[],"size":10285,"version":"0.11.0","binstar":{"package_id":"63cde1a68ff1ad274259f6a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7314cc21cf33272a8365522c47679b0702ca249deb84c29071f03e75779434f6"},"ros-noetic-rqt-robot-dashboard-0.5.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-nav-view","ros-noetic-rqt-robot-monitor"],"build":"py39he6bf450_9","timestamp":1674554975643,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5f4a56c064f156a80f8774046d0359f4","name":"ros-noetic-rqt-robot-dashboard","requires":[],"size":1675348,"version":"0.5.8","binstar":{"package_id":"63cde1a859c09271a42298e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed852954ace49684bc1a4c0bd210485e105ef93345545fe1f7c93dad3eeab5c1"},"ros-noetic-rqt-common-plugins-0.4.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-action","ros-noetic-rqt-bag","ros-noetic-rqt-bag-plugins","ros-noetic-rqt-console","ros-noetic-rqt-dep","ros-noetic-rqt-graph","ros-noetic-rqt-image-view","ros-noetic-rqt-launch","ros-noetic-rqt-logger-level","ros-noetic-rqt-msg","ros-noetic-rqt-plot","ros-noetic-rqt-publisher","ros-noetic-rqt-py-common","ros-noetic-rqt-py-console","ros-noetic-rqt-reconfigure","ros-noetic-rqt-service-caller","ros-noetic-rqt-shell","ros-noetic-rqt-srv","ros-noetic-rqt-top","ros-noetic-rqt-topic","ros-noetic-rqt-web"],"build":"py39he6bf450_9","timestamp":1674550377178,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"42eadc25177e61b35c080a9582889040","name":"ros-noetic-rqt-common-plugins","requires":[],"size":10450,"version":"0.4.9","binstar":{"package_id":"63cde32c912363225be036ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33533ca43b04d807e024b9eaa5a0014abb9de078bff365e01d581bfad1edc6e2"},"ros-noetic-viz-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-base","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins","ros-noetic-rviz"],"build":"py39he6bf450_9","timestamp":1674557776387,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3efb214784bacb069161e454058b4bbf","name":"ros-noetic-viz","requires":[],"size":10475,"version":"1.5.0","binstar":{"package_id":"63cde32d5a31eb90f6f9b3d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b95e8fb4ad64708efe7463e07fd6b1a92785cfc6eed1fd3bf55957b20661327"},"ros-noetic-rqt-robot-plugins-0.5.8-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-moveit","ros-noetic-rqt-nav-view","ros-noetic-rqt-pose-view","ros-noetic-rqt-robot-dashboard","ros-noetic-rqt-robot-monitor","ros-noetic-rqt-robot-steering","ros-noetic-rqt-runtime-monitor","ros-noetic-rqt-rviz","ros-noetic-rqt-tf-tree"],"build":"py39he6bf450_9","timestamp":1674556836024,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e2c8e00171433b5e3ac9d3fda366a2b8","name":"ros-noetic-rqt-robot-plugins","requires":[],"size":10960,"version":"0.5.8","binstar":{"package_id":"63cde32db23346582c869736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9bd4fbd891067545524b1f64948ff5e795a373d5e088143a31ab7076668bd34"},"ros-noetic-desktop-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-common-tutorials","ros-noetic-geometry-tutorials","ros-noetic-joint-state-publisher-gui","ros-noetic-robot","ros-noetic-ros-tutorials","ros-noetic-roslint","ros-noetic-urdf-tutorial","ros-noetic-visualization-tutorials","ros-noetic-viz"],"build":"py39he6bf450_9","timestamp":1674558477338,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a1e7120b93b9552b29ce90e63411cffb","name":"ros-noetic-desktop","requires":[],"size":10913,"version":"1.5.0","binstar":{"package_id":"63cde32e8ff1ad27425a77b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f15b40daff20cb20f8a5338f391e9be3c6effcb0b209b8497e71d9f79f7a759"},"ros-noetic-rviz-imu-plugin-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1674555038149,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"42f78eea1238ecc28cec243534e7ad6c","name":"ros-noetic-rviz-imu-plugin","requires":[],"size":127948,"version":"1.2.5","binstar":{"package_id":"63cde835912363225be18fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd3954afafe5200c27441d423cf3071202236b78bf40d93fe83b7e055f5a73c6"},"ros-noetic-costmap-converter-0.0.13-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594787297,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ec30ea19fc38a7111f3a597f040e3f8b","name":"ros-noetic-costmap-converter","requires":[],"size":489440,"version":"0.0.13","binstar":{"package_id":"63cde836c37c80a75b25a534","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd425e04402f0a69fee81fa5d4149a6c60b736d7cbe42b03857af48062f943ff"},"ros-noetic-imu-tools-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-imu-complementary-filter","ros-noetic-imu-filter-madgwick","ros-noetic-rviz-imu-plugin"],"build":"py39he6bf450_9","timestamp":1674556866068,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b1166d32c011a2ec1e610d2ffb434d68","name":"ros-noetic-imu-tools","requires":[],"size":10285,"version":"1.2.5","binstar":{"package_id":"63cded40912363225be2beb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"269f81eee2d6fd4e9cac701f6263a00f0d1070d961cf421e6f920fb2033bd2de"},"ros-noetic-urdf-sim-tutorial-0.5.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-joint-state-controller","ros-noetic-position-controllers","ros-noetic-robot-state-publisher","ros-noetic-rqt-robot-steering","ros-noetic-rviz","ros-noetic-urdf-tutorial","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674557912223,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e6be570be9ac9813c145329d34d4be31","name":"ros-noetic-urdf-sim-tutorial","requires":[],"size":20085,"version":"0.5.1","binstar":{"package_id":"63cdf1add0e8c095e234b6d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"258635bb49fa236da94f216c647a5d98eb0ba66fe24516276f42168c6489da38"},"ros-noetic-hector-gazebo-plugins-0.5.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-ros","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674587829834,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"06c7bb3e8e88b9d060e1a56a5e82a881","name":"ros-noetic-hector-gazebo-plugins","requires":[],"size":1050861,"version":"0.5.4","binstar":{"package_id":"63cdf1e2c37c80a75b2892e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2df0a86263db2f6656c4dd4b4e9189e835f406f076dadc2af61ad364fb77fbec"},"ros-noetic-gazebo-plugins-2.9.2-py39h644187d_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-ros","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-polled-camera","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","tbb >=2021.7.0"],"build":"py39h644187d_9","timestamp":1674557389841,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5a7ccafbf267bdb5da676e1df96b0a0a","name":"ros-noetic-gazebo-plugins","requires":[],"size":3470958,"version":"2.9.2","binstar":{"package_id":"63cdf1ecc37c80a75b289417","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0eb76c238bb1b643591bf053338929bab1048048b354ca3c3c8c4334e24cdf0a"},"ros-noetic-nav-core-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674555007503,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"11458e879ed1d1276b10c0712591e8e6","name":"ros-noetic-nav-core","requires":[],"size":15818,"version":"1.17.3","binstar":{"package_id":"63cdf328b23346582c88f8ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a0c4e2a84a83ed338138a9bad2a4b430c066388cd7e87df4b1e5cdab15517ba"},"ros-noetic-gazebo-ros-pkgs-2.9.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros"],"build":"py39he6bf450_9","timestamp":1674557963380,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bc83f0195baf4c4c3d6f4e7800e687ea","name":"ros-noetic-gazebo-ros-pkgs","requires":[],"size":10459,"version":"2.9.2","binstar":{"package_id":"63cdf5458ff1ad27425fd4b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a420d641fe8debeb4f161058202770b4ab62ee73b3f4610f44dea3fdf59689a7"},"ros-noetic-mbf-costmap-core-0.4.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-mbf-abstract-core","ros-noetic-mbf-utility","ros-noetic-nav-core","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674597806093,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"19b889138538629d7d6d673fa5f61a53","name":"ros-noetic-mbf-costmap-core","requires":[],"size":16366,"version":"0.4.0","binstar":{"package_id":"63cdf547989160afcf6c8e0e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f79e9b115a20db8e15a50ee894de36d75064a5e0318343b717fc13a300e16e34"},"ros-noetic-jackal-gazebo-0.4.0-py39hfaf8bd9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-effort-controllers","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-gazebo-ros-pkgs","ros-noetic-hector-gazebo-plugins","ros-noetic-jackal-control","ros-noetic-jackal-description","ros-noetic-joy","ros-noetic-position-controllers","ros-noetic-velocity-controllers","ros-noetic-velodyne-simulator"],"build":"py39hfaf8bd9_3","timestamp":1674598590648,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b1a499de8d1577e9542ed9f808854091","name":"ros-noetic-jackal-gazebo","requires":[],"size":822322,"version":"0.4.0","binstar":{"package_id":"63ce106a208d2222c0b2adc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e6745bb2971df0638ee17076ed8ed8e78f86916223e987876edec64899d1235"},"ros-noetic-moveit-core-1.1.11-py39hf997e56_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-geometric-shapes","ros-noetic-geometry-msgs","ros-noetic-kdl-parser","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-pluginlib","ros-noetic-pybind11-catkin","ros-noetic-random-numbers","ros-noetic-rosconsole","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-ruckig","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-srdfdom","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","ros-noetic-xmlrpcpp","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39hf997e56_9","timestamp":1674557019209,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dbf619c070c960280dad5081121360cf","name":"ros-noetic-moveit-core","requires":[],"size":2151218,"version":"1.1.11","binstar":{"package_id":"63ce1394cd65eb0e14c9f42f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edf04e210a3a3bfef85fc5ace62ecf407ea6699facb133f0d67328e2744ee733"},"ros-noetic-clear-costmap-recovery-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674556904928,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2997487143906309604973b91d931072","name":"ros-noetic-clear-costmap-recovery","requires":[],"size":49202,"version":"1.17.3","binstar":{"package_id":"63ce1739989160afcf72bf28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2b7aac0f8796e418549fe15738cf04be727b1bff5f6a1da1670266695020f1d"},"ros-noetic-navfn-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674556780588,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dc0f2f6e840da2fa024a916cd8004a22","name":"ros-noetic-navfn","requires":[],"size":159554,"version":"1.17.3","binstar":{"package_id":"63ce173b68b198bb951c5e50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd249677daeb68ec64f69a15a68f7c5e86591b1772fd2f02e9954ac68358ac60"},"ros-noetic-base-local-planner-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39he6bf450_9","timestamp":1674557187624,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d2e0c7cea058f5c191353c6dd7faadcb","name":"ros-noetic-base-local-planner","requires":[],"size":292878,"version":"1.17.3","binstar":{"package_id":"63ce173e8ff1ad27426d0557","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d92aab360206ab964f14777408f405cc702b12c7ebcc5055b966088befc4bf7"},"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-conversions","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-kdl"],"build":"py39he6bf450_9","timestamp":1674558027229,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"368ffad6c4458a2428a9d85faf9e54ba","name":"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":149906,"version":"0.8.2","binstar":{"package_id":"63ce1a25d0e8c095e24669c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5013e960a15dddffd73c8df00c8f6965ad5b20ff7d31a740461fb655a115c76c"},"ros-noetic-moveit-ros-occupancy-map-monitor-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-pluginlib","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674557850563,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"27c435378b72a969ea65b1be53d0cd98","name":"ros-noetic-moveit-ros-occupancy-map-monitor","requires":[],"size":182251,"version":"1.1.11","binstar":{"package_id":"63ce1b09dbdf7335210c4582","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"815022ce1c05629b3d24a394315cd24c7880bcfb2227c8bb9ab746135f44f43a"},"ros-noetic-moveit-simple-controller-manager-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674557853495,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"c147d5dfa0ae48c61be744dad95b9813","name":"ros-noetic-moveit-simple-controller-manager","requires":[],"size":223632,"version":"1.1.11","binstar":{"package_id":"63ce1b0d989160afcf738400","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ad293c4d7504c862cc8fd86ff969ce2eb66201a0fbe3f9b9bebb3bd0d05d8f0"},"ros-noetic-chomp-motion-planner-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1674557872585,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"62ebfeece4196400416082bf7b2b4563","name":"ros-noetic-chomp-motion-planner","requires":[],"size":150306,"version":"1.1.11","binstar":{"package_id":"63ce1bdac37c80a75b3d8f45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6783e5692e7268e44ddf514cb6c029d0900425a53bd23746f35fb7512d1afbdb"},"ros-noetic-rotate-recovery-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674557994320,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"20748e0a301be80f3cd0d6f4f160dffc","name":"ros-noetic-rotate-recovery","requires":[],"size":51894,"version":"1.17.3","binstar":{"package_id":"63ce1ed5989160afcf744ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be00f860730952117869ab429d5f8c2b164012bc0b9c1c492b58b0fff25ac968"},"ros-noetic-moveit-resources-prbt-moveit-config-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-support","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674558565634,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"e9d8b200cf202d461a6156ef42548b2f","name":"ros-noetic-moveit-resources-prbt-moveit-config","requires":[],"size":25397,"version":"0.8.2","binstar":{"package_id":"63ce205359c09271a42e43a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1700cd31a3a1944681afddab61a3db770abae8bea8e460aedbae266693bb9a7b"},"ros-noetic-moveit-ros-control-interface-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-controller-manager-msgs","ros-noetic-moveit-core","ros-noetic-moveit-simple-controller-manager","ros-noetic-pluginlib","ros-noetic-trajectory-msgs"],"build":"py39he6bf450_9","timestamp":1674558475099,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"497f40eb75d6272fa76af3913d09063b","name":"ros-noetic-moveit-ros-control-interface","requires":[],"size":196830,"version":"1.1.11","binstar":{"package_id":"63ce205568b198bb951d6290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf2465a563b7e6fc6b265aa2890e174181b9ef2fbc64de9367efa62c759c660c"},"ros-noetic-moveit-ros-planning-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-srdfdom","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674558652733,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"211e12a7261d30de8eee0c56ac9f649d","name":"ros-noetic-moveit-ros-planning","requires":[],"size":1385802,"version":"1.1.11","binstar":{"package_id":"63ce2059c37c80a75b3f5ec4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b144365bd85f89950c8797706fea1f60660b47ac06a62f4096f9d88aa87a124"},"ros-noetic-simulators-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros-pkgs","ros-noetic-robot","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins"],"build":"py39he6bf450_9","timestamp":1674558419585,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"31f4056e8295dec9c5837e16d6f21e91","name":"ros-noetic-simulators","requires":[],"size":11362,"version":"1.5.0","binstar":{"package_id":"63ce2bed0273ee116afd146c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"481b9c27d37091a7c76577cde04847637522111296ffd4d32a2b9300707e5461"},"ros-noetic-moveit-kinematics-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-kdl","urdfdom"],"build":"py39he6bf450_9","timestamp":1674587786271,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"d50c4001c9a3d7bc39399aa4ec7477cc","name":"ros-noetic-moveit-kinematics","requires":[],"size":343879,"version":"1.1.11","binstar":{"package_id":"63ce2f148ff1ad2742762b05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26b254ba360bacd744e9c5debf99711cdf95531a6e9af14e69af99631a0ad6e0"},"ros-noetic-moveit-ros-robot-interaction-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674587695765,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"bef84386f2a35fb67fa55c8d05ae09d6","name":"ros-noetic-moveit-ros-robot-interaction","requires":[],"size":158371,"version":"1.1.11","binstar":{"package_id":"63ce2f19d0e8c095e251962f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14ad3ef8067f94420823a62516e0ade6f04c7e4b5b0cbb722b569a0ff9b224cc"},"ros-noetic-moveit-ros-perception-1.1.11-py39ha88d2d6_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["_openmp_mutex >=4.5","freeglut >=3.2.2,<4.0a0","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-moveit-ros-planning","ros-noetic-nodelet","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","xorg-libx11","xorg-libxext"],"build":"py39ha88d2d6_9","timestamp":1674587923587,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"83241b375cc8662f4f06aae832b34ef5","name":"ros-noetic-moveit-ros-perception","requires":[],"size":416024,"version":"1.1.11","binstar":{"package_id":"63ce2f1c912363225bf5fbe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"472864c240053f7f24a648ffb3f8c2b2ca3a675854cb138b80026963a1400f7e"},"ros-noetic-move-base-1.17.3-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-base-local-planner","ros-noetic-clear-costmap-recovery","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-move-base-msgs","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-navfn","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rotate-recovery","ros-noetic-std-srvs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674558835520,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"70ebf6af8cf260ac9b9105462d9072e5","name":"ros-noetic-move-base","requires":[],"size":327152,"version":"1.17.3","binstar":{"package_id":"63ce2f222b70bce8309b1ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bd1f24ec8df524b7cc8f5f2a80a2c0ab6baed4b0ae8ba56c53a4c6cf8a1f567"},"ros-noetic-moveit-ros-warehouse-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-warehouse-ros"],"build":"py39he6bf450_9","timestamp":1674587964337,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"63bcd868069f4255eef154574fa08f48","name":"ros-noetic-moveit-ros-warehouse","requires":[],"size":626006,"version":"1.1.11","binstar":{"package_id":"63ce2f275a31eb90f6111bd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"256d98152856807e6d75b8859c5d22c5e72279875c718b0b8844cac5df8ebfe8"},"ros-noetic-turtlebot3-navigation-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-amcl","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-turtlebot3-bringup"],"build":"py39he6bf450_9","timestamp":1674599966948,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"71afec6aaab473644b875204fe1a6354","name":"ros-noetic-turtlebot3-navigation","requires":[],"size":18937,"version":"1.2.5","binstar":{"package_id":"63ce3c010273ee116a00cb87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5efd2a6c57c2d3cee22adfcf9fdc9d618dc1ad9ca6c8440e0417ece746eb3226"},"ros-noetic-moveit-ros-move-group-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-moveit-core","ros-noetic-moveit-kinematics","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674588617726,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"f3798c0ec356d9decc637360a580f6cd","name":"ros-noetic-moveit-ros-move-group","requires":[],"size":515209,"version":"1.1.11","binstar":{"package_id":"63ce3cc02ff78d332ee8d57b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b273d2c928e168c5528c03c9ed0b3ad27c7754f6c192718e03366f7263e2ca4a"},"ros-noetic-moveit-planners-ompl-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-ompl","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2"],"build":"py39he6bf450_9","timestamp":1674588031459,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"713826e611f4d7bbae020191ed051265","name":"ros-noetic-moveit-planners-ompl","requires":[],"size":544128,"version":"1.1.11","binstar":{"package_id":"63ce3cc6912363225bfac243","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51e71dfa5d304a7bcac90f6a64edaf3314c5291da12aa928a7c22663bf684891"},"ros-noetic-moveit-fake-controller-manager-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674587686666,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"6f6f2c145f6fecea94c141433367ac2c","name":"ros-noetic-moveit-fake-controller-manager","requires":[],"size":84097,"version":"1.1.11","binstar":{"package_id":"63ce3ccbdbdf7335211c754c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0315dec71d12fc6eaedf305e3db0e1df6e61859feb8bd25d253dccaff4371969"},"ros-noetic-moveit-resources-prbt-pg70-support-0.8.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-moveit-config","ros-noetic-moveit-resources-prbt-support","ros-noetic-xacro"],"build":"py39he6bf450_9","timestamp":1674587615371,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"49ed6afd98c0cc5f7abe9149f9827ea0","name":"ros-noetic-moveit-resources-prbt-pg70-support","requires":[],"size":18123,"version":"0.8.2","binstar":{"package_id":"63ce3cce912363225bfae548","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf54f72ccd89dead64dd4cca7514e603ee45453cc372c4df1b200619588611a2"},"ros-noetic-turtlebot3-1.2.5-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-example","ros-noetic-turtlebot3-navigation","ros-noetic-turtlebot3-slam","ros-noetic-turtlebot3-teleop"],"build":"py39he6bf450_9","timestamp":1674600394056,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3db50604103963478caa9af6b1ec7647","name":"ros-noetic-turtlebot3","requires":[],"size":9574,"version":"1.2.5","binstar":{"package_id":"63ce40bc5a31eb90f6189a76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"580eff275100daaefb2ff9fff89b3736dc1ef254b1de5c05c675a77b393a2e01"},"ros-noetic-desktop-full-1.5.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-desktop","ros-noetic-perception","ros-noetic-simulators","ros-noetic-urdf-sim-tutorial"],"build":"py39he6bf450_9","timestamp":1674587698475,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8f6c5b43cd9ab371185a3481a34a4967","name":"ros-noetic-desktop-full","requires":[],"size":12192,"version":"1.5.0","binstar":{"package_id":"63ce4a115a31eb90f61d4ea8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7576fe6a2cd69a234c387a58e6af3bd5b8cdf3ea507ff46415964185174caac"},"ros-noetic-mavros-msgs-1.16.0-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39he6bf450_10","timestamp":1684474397282,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"af82e06c36612088b9955d80132b473f","name":"ros-noetic-mavros-msgs","requires":[],"size":636250,"version":"1.16.0","binstar":{"package_id":"63ce567f2ff78d332ef49b71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f662b8dc5808e6b88cf2b595ce3f130c3cc59b7d1ca5d714291f89fc9fc9a061"},"ros-noetic-moveit-plugins-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-fake-controller-manager","ros-noetic-moveit-ros-control-interface","ros-noetic-moveit-simple-controller-manager"],"build":"py39he6bf450_9","timestamp":1674588680511,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"84717951ae693a74b84ad99d0e4162c5","name":"ros-noetic-moveit-plugins","requires":[],"size":8827,"version":"1.1.11","binstar":{"package_id":"63ce5b7bc37c80a75b67fb09","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e3e7195b54dba2c0a6d6ca34f10d78630e650d2eec48b28a5ff15b740853025"},"ros-noetic-moveit-ros-benchmarks-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39he6bf450_9","timestamp":1674590649078,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a1c58bc4413486c05a496b88bba33753","name":"ros-noetic-moveit-ros-benchmarks","requires":[],"size":374585,"version":"1.1.11","binstar":{"package_id":"63ce5b7d989160afcf843099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e2bf55eebdb3786e57eb221de7b6e2e12be73d5ee357979957593d92c0b5a0e"},"ros-noetic-moveit-ros-manipulation-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39he6bf450_9","timestamp":1674590364083,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b4ae06348611036a7c90ad114b8e93ba","name":"ros-noetic-moveit-ros-manipulation","requires":[],"size":439887,"version":"1.1.11","binstar":{"package_id":"63ce64568ff1ad274294d319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7b1db00f8587135c243c312ca2c7d08203560691d51cbb116771d08732fc0ea"},"ros-noetic-teb-local-planner-0.9.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-base-local-planner","ros-noetic-costmap-2d","ros-noetic-costmap-converter","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-libg2o","ros-noetic-mbf-costmap-core","ros-noetic-mbf-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39he6bf450_9","timestamp":1674599406307,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3701ea915bb9b8000bc10537b5ed62ca","name":"ros-noetic-teb-local-planner","requires":[],"size":887865,"version":"0.9.1","binstar":{"package_id":"63ce645c0273ee116a0da15c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0135cc9ea5fed7130d80e8e2aa77418953c19e5c966d1beab538175deed8528"},"ros-noetic-moveit-ros-planning-interface-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-eigenpy","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674591361935,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3e57fc1ff5af0e16a24ae9e407504701","name":"ros-noetic-moveit-ros-planning-interface","requires":[],"size":805621,"version":"1.1.11","binstar":{"package_id":"63ce672986de531a28e92324","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13525263441e6b532ef46e2354d5236c6fe270bbc9e794df1181fea7c2550353"},"ros-noetic-moveit-ros-visualization-1.1.11-py39hacbe649_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-interactive-markers","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-warehouse","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rviz","ros-noetic-tf2-eigen","xorg-libx11","xorg-libxext"],"build":"py39hacbe649_9","timestamp":1674592296851,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"cadc7c92d1e4e9f177fe38f9f3336ac8","name":"ros-noetic-moveit-ros-visualization","requires":[],"size":816986,"version":"1.1.11","binstar":{"package_id":"63ce6b2d68b198bb95298494","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3757cae41efc9e75c546c83b4f2c86d4ecd2e59a5432267ab38ba7aa89980639"},"ros-noetic-moveit-commander-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["assimp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-planning-interface","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-tf"],"build":"py39he6bf450_9","timestamp":1674592389997,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8d398fae1d8c461e06828e1c69df3cfc","name":"ros-noetic-moveit-commander","requires":[],"size":87712,"version":"1.1.11","binstar":{"package_id":"63ce6b35b23346582ca72eb0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ff6d4bf72e3fb361854c37b7043eb25e6fc70e5f2db3342a7fd1a3dc9ca458c"},"ros-noetic-moveit-planners-chomp-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39he6bf450_9","timestamp":1674594466649,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"902b9def7f7e62dd200f8b6b95f22a94","name":"ros-noetic-moveit-planners-chomp","requires":[],"size":51494,"version":"1.1.11","binstar":{"package_id":"63ce6b38dbdf7335213f6181","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5315b44e8a82c74c6230ecc4131d8ac60edbb5c199fa06a00ed22415d0cbf836"},"ros-noetic-moveit-setup-assistant-1.1.11-py39hacbe649_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-visualization","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rviz","ros-noetic-srdfdom","ros-noetic-urdf","ros-noetic-xacro","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hacbe649_9","timestamp":1674594701379,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"4035f060b7078df129096bb2b2cea188","name":"ros-noetic-moveit-setup-assistant","requires":[],"size":1134374,"version":"1.1.11","binstar":{"package_id":"63ce6ef914201bfa45b9c36f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4fc8064a6e3dd01157a167094093b4c6e7c7d7f79b98eedb8c22ecb1bb1dd02"},"ros-noetic-pilz-industrial-motion-planner-testutils-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-msgs"],"build":"py39he6bf450_9","timestamp":1674594407307,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1e631f8105ff0354a7ae05106f85ce3e","name":"ros-noetic-pilz-industrial-motion-planner-testutils","requires":[],"size":159251,"version":"1.1.11","binstar":{"package_id":"63ce6f01c37c80a75b7789af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89511bd094f4431733fe68165041ee465c8538e500fe5a16fb319e85b7c47a20"},"ros-noetic-moveit-ros-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-benchmarks","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-visualization","ros-noetic-moveit-ros-warehouse"],"build":"py39he6bf450_9","timestamp":1674594423389,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"22e17fdcd24c40b6968759518a8578f0","name":"ros-noetic-moveit-ros","requires":[],"size":10671,"version":"1.1.11","binstar":{"package_id":"63ce6f048ff1ad27429d0182","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a952c4f942c5c41a834587d9f7c31a91e84c9041855d6bb7314548dc723f0804"},"ros-noetic-moveit-planners-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-planners-chomp","ros-noetic-moveit-planners-ompl","ros-noetic-pilz-industrial-motion-planner"],"build":"py39he6bf450_9","timestamp":1674599108503,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"0105dcefb43ee9da050805b67c8427e2","name":"ros-noetic-moveit-planners","requires":[],"size":9551,"version":"1.1.11","binstar":{"package_id":"63ce72eb14201bfa45ba6e16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b7ae1d5d07e6c914cc5a776478b362c4dd7f9bcc7232c8b069b64d5e6b21232"},"ros-noetic-pilz-industrial-motion-planner-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-limits-interface","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39he6bf450_9","timestamp":1674597913629,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9374131f0f6584b7dd8c1f5f81e5a804","name":"ros-noetic-pilz-industrial-motion-planner","requires":[],"size":767786,"version":"1.1.11","binstar":{"package_id":"63ce72eda64974fd09454e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbd8f91bad754978fa6ef6eb1d3b61133d0d9fa1747508435248ee048095fb2d"},"ros-noetic-moveit-1.1.11-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-planners","ros-noetic-moveit-plugins","ros-noetic-moveit-ros","ros-noetic-moveit-setup-assistant"],"build":"py39he6bf450_9","timestamp":1674599954920,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5f90bbc398fcc3a148c6ea2a2e3a15e5","name":"ros-noetic-moveit","requires":[],"size":11017,"version":"1.1.11","binstar":{"package_id":"63ce72f6989160afcf8c91c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19a449c9ad360a1dec25980ceea3ef7bfba97afa2ca60a7435302f92b9a0cd5a"},"ros-noetic-four-wheel-steering-msgs-1.1.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674480330166,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"409d9ee41530d71d33b7d00a0f63890a","name":"ros-noetic-four-wheel-steering-msgs","requires":[],"size":32130,"version":"1.1.1","binstar":{"package_id":"63ce8ad1989160afcf96cf52","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a18487c46714ed2490ea17ce3513437016ca73ed67d1e16c02387b18171377c"},"ros-noetic-urdf-geometry-parser-0.1.0-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39he6bf450_9","timestamp":1674539923069,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9a24755bb1083fac93e579f7df6cc3a9","name":"ros-noetic-urdf-geometry-parser","requires":[],"size":33344,"version":"0.1.0","binstar":{"package_id":"63cf739fc37c80a75b320334","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a95624faaadea369a92109ba630c5c26e6fd9b7606329a3252165fe79ef4e11"},"ros-noetic-fcl-0.6.1-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["eigen","libccd-double >=2.1,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"build":"py39he6bf450_9","timestamp":1674541762330,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"451574b04250222ded18663166f6a9e8","name":"ros-noetic-fcl","requires":[],"size":1714895,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d43a7e42226d9ed54b7bd38b3d91364949751539d249f9aca69fc93a57c6eda1"},"ros-noetic-cv-camera-0.6.0-py39h12fffa4_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h12fffa4_9","timestamp":1674544323092,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"075145a8f85bdc0026155486f3cdd281","name":"ros-noetic-cv-camera","requires":[],"size":83426,"version":"0.6.0","binstar":{"package_id":"63cf84b3d0e8c095e242cf2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9b20736b8a9ef761f61b44995523c38b1c3de02b8fa8d7dd7ceecc9d27683b8"},"ros-noetic-rospy-message-converter-0.5.9-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1674594293441,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"69c320201472f8da0e4b3603e85c400e","name":"ros-noetic-rospy-message-converter","requires":[],"size":53581,"version":"0.5.9","binstar":{"package_id":"63d047c9dbdf73352187252c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fee7e1b3b40de1144b45e741993c9f47534674d8013e889aca5c8954c2bb421"},"ros-noetic-sound-play-0.3.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gst-plugins-base","gst-plugins-good","gst-plugins-ugly","gstreamer","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pygobject","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-audio-common-msgs","ros-noetic-diagnostic-msgs","ros-noetic-message-runtime","ros-noetic-resource-retriever","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy"],"build":"py39he6bf450_9","timestamp":1675026571299,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"887d5360feabfc1ce714d19f7709617e","name":"ros-noetic-sound-play","requires":[],"size":281893,"version":"0.3.16","binstar":{"package_id":"63d6dd63dbdf7335211b72d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42a4de7a40fcecc11964f849bd1cc8c6afdd2358b0a8a30cb8351d209bd26dda"},"ros-noetic-audio-common-msgs-0.3.16-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1675026118780,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"72903db4ec605a019c5f02a728dae194","name":"ros-noetic-audio-common-msgs","requires":[],"size":33880,"version":"0.3.16","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee75db4b5476f6520ab21ab9b9a58d6ca397db4d87fb6c2f530a4bac53aa4f4f"},"ros-noetic-pid-0.0.28-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39he6bf450_9","timestamp":1675193647769,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"2f613387974cbb5c7c82a82f71f24fc5","name":"ros-noetic-pid","requires":[],"size":192771,"version":"0.0.28","binstar":{"package_id":"63d96b6a912363225b710bc3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdcf6671eed6a6fa3e6bd1b2697c43c1908ecde892076e8688c70c257f5da88e"},"ros-noetic-fake-localization-1.17.3-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nav-msgs","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2-ros"],"subdir":"linux-aarch64","timestamp":1692221439514,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39he6bf450_10","md5":"94838590905f96c6fc1a258e1f8f4f88","name":"ros-noetic-fake-localization","requires":[],"size":134118,"version":"1.17.3","binstar":{"package_id":"63e587aad831fccc8a2e3e43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76814000426058c6666cca429fa000465ae965a317f80e28d2f42ccc1fd16209"},"ros-noetic-rgbd-launch-2.4.0-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-nodelet","ros-noetic-tf2-ros"],"build":"py39he6bf450_10","timestamp":1682029054544,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"dc26dcc088d7f79b0236563423dfc801","name":"ros-noetic-rgbd-launch","requires":[],"size":17282,"version":"2.4.0","binstar":{"package_id":"63e587ac0ac8211534858ecf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da1ee9f8d6cd95e1b34d0f4a34f733721486411908ed9f14f3380129bdc05271"},"ros-noetic-rosauth-1.0.1-py39h8ff11f5_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39h8ff11f5_9","timestamp":1676581369569,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"ea64acd97d36292b2a272620a2bab5a0","name":"ros-noetic-rosauth","requires":[],"size":58897,"version":"1.0.1","binstar":{"package_id":"63ee9a01f048dbdee41065f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b55c0f13791aabe2e6536e84082a3e5aecff1a0f710b7bba870bbe671539b374"},"ros-noetic-rosbag-storage-1.16.0-py39h6893f9d_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost-cpp","bzip2 >=1.0.8,<2.0a0","console_bridge >=1.0.2,<1.1.0a0","gpgme >=1.18.0,<1.19.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-pluginlib","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-roslz4","ros-noetic-rostime"],"build":"py39h6893f9d_9","timestamp":1676581274270,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"da47e65a472f07ba4ebf3e029b7f0135","name":"ros-noetic-rosbag-storage","requires":[],"size":230950,"version":"1.16.0","binstar":{"package_id":"63ee9a03f048dbdee410665b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a1e8773059e0ec5013953c4aeb9f7b9f6cc0e4e16084639a029fec450c188aa"},"ros-noetic-webkit-dependency-1.1.2-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqtwebengine","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39he6bf450_9","timestamp":1676585576655,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"b502d4ba18ff5d5dd7b487b7d63b37f3","name":"ros-noetic-webkit-dependency","requires":[],"size":11199,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6e91e0b36288c8b352d16045ae15af355984c20cbd449884db1c4c6c9885f96"},"ros-noetic-python-qt-binding-0.4.4-py39he6bf450_9.tar.bz2":{"build_number":9,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["adwaita-icon-theme","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","xorg-libx11","xorg-libxext"],"build":"py39he6bf450_9","timestamp":1676861531580,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"a05e76cfa80db2d8613c1199aaefbe17","name":"ros-noetic-python-qt-binding","requires":[],"size":36454,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a587c337b722358d97602b32374617679ea4dc7aa62f2f5c9de3a5205e308a86"},"ros-noetic-ros-babel-fish-0.9.3-py39h8ff11f5_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39h8ff11f5_10","timestamp":1678495368248,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"30102d3cc4727c8ce246c540c126b398","name":"ros-noetic-ros-babel-fish","requires":[],"size":492842,"version":"0.9.3","binstar":{"package_id":"640bcb2a56f3d8408e3bd098","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"293a52dd107beae0249a1e5755e19a9eb16e0884fbd7ae34711115ed92bf5793"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_10","timestamp":1678494811801,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8c03c755b7068795f855da3ad21926c6","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":82752,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ba3141eeca50ac74eedfadf4c7ebf204d166688cb71b375c084f2c6855fe7f0"},"ros-noetic-foxglove-bridge-0.5.1-py39hac7f517_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.1.0,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-ros-babel-fish","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","zlib"],"build":"py39hac7f517_10","timestamp":1680039973182,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"9ed1db8f67844748c99b4bca556d4f4b","name":"ros-noetic-foxglove-bridge","requires":[],"size":896315,"version":"0.5.1","binstar":{"package_id":"640bcc155646df5d56040be2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0565a1141854df768c4d304c2568b46a7ffcd465b38f43e22d5b74c85b68a473"},"ros-humble-foxglove-bridge-0.5.1-py310h44f3e98_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zlib"],"build":"py310h44f3e98_3","timestamp":1678496624853,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3fc337ba2b86ebc297832a4fa73eedc4","name":"ros-humble-foxglove-bridge","requires":[],"size":1085093,"version":"0.5.1","binstar":{"package_id":"640bd1e40078da3fd81620c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29fb73c116d1979396e88f4062f27be88fe641f257c981c59a8f43de9c96e4a6"},"ros-noetic-graph-msgs-0.1.0-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_10","timestamp":1680039776636,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"afe0d3def877665432180807a29f9ffb","name":"ros-noetic-graph-msgs","requires":[],"size":33423,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3fe14f665540198a298d5cb1a81a179c29526dd1e26c610ed97be79e1df1cd0"},"ros-noetic-moveit-visual-tools-3.6.0-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz-visual-tools","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39he6bf450_10","timestamp":1680416462168,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"08cc1eca29b71d28b9ff531a82ba0775","name":"ros-noetic-moveit-visual-tools","requires":[],"size":348358,"version":"3.6.0","binstar":{"package_id":"64235f6ef4abb0819e151d80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9911788b34bcc87dad833b15d6d0d1024e8bfb9538f748d4fe2f3fb44565c883"},"ros-noetic-rviz-visual-tools-3.9.3-py39hacbe649_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39hacbe649_10","timestamp":1680040683267,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"590855f6e6a4fee37eaf538a1f14bd5d","name":"ros-noetic-rviz-visual-tools","requires":[],"size":1620025,"version":"3.9.3","binstar":{"package_id":"64235f6ff4abb0819e151dbf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dbc4086c87789d3b1fd09b3e8957cc61e19d065a0d1c81b0069b721b9ad9bbe"},"ros-humble-geodesy-1.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyproj","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684266149119,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1bebe554e714a2d0ea769e16efc724e1","name":"ros-humble-geodesy","requires":[],"size":39613,"version":"1.0.5","binstar":{"package_id":"6456285db6840a3f6c624129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d90f98729a242e8f8274bca4bb34c51a596eaa55fa2c3bbf1db264cadfeceae"},"ros-humble-geographic-info-1.0.5-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geodesy","ros-humble-geographic-msgs","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684266753148,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3021bec4546ab539e0aed5c38a1314b0","name":"ros-humble-geographic-info","requires":[],"size":11190,"version":"1.0.5","binstar":{"package_id":"6456285e27b104c73315a90c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bbd2bb86b1abb5e2d9330b2761ce646a07e0dbf7c9a1b550a153f781f5b76a7"},"ros-noetic-microstrain-inertial-msgs-3.0.1-py39he6bf450_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39he6bf450_10","timestamp":1684474481951,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"5fc6e955dc9224f697ffd31f7384d34f","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":275170,"version":"3.0.1","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"664a2e4e5133bb1808eb4e652157a94bf6e2c56c775bc338dfdb2da5b0296d3a"},"ros-noetic-microstrain-inertial-driver-3.0.1-py39h852018a_10.tar.bz2":{"build_number":10,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libcurl >=7.88.1,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-mavros-msgs","ros-noetic-message-runtime","ros-noetic-microstrain-inertial-msgs","ros-noetic-nav-msgs","ros-noetic-nmea-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h852018a_10","timestamp":1684475091678,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"939cb77372569df3c8a70a7406e3b5fd","name":"ros-noetic-microstrain-inertial-driver","requires":[],"size":699953,"version":"3.0.1","binstar":{"package_id":"64670c2db8f416e9fb5ed89a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8d5645d8cba646eee3908ec13ab14bb3b99443ea297045c0c1129bd2167feed"},"ros-humble-actuator-msgs-0.0.1-py310h010ba66_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h010ba66_3","timestamp":1684890301949,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"3b85fe87c5e844983de219c37c355457","name":"ros-humble-actuator-msgs","requires":[],"size":134477,"version":"0.0.1","binstar":{"package_id":"646d616bd52c6a0ecdfb698f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80feb9dd307a5d74e46f249e119ea3de0b25907aed0a85b4b14dfa94185d3d3e"},"ros-noetic-hpp-fcl-2.3.6-h6a33a49_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h6a33a49_21","build_number":21,"depends":["hpp-fcl 2.3.6*"],"platform":"linux","timestamp":1706505760162,"md5":"be3f60d98004d4e5a017445fcb303841","name":"ros-noetic-hpp-fcl","requires":[],"size":3598,"version":"2.3.6","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb39f1eef04a764ada0f74f32a31f47e6a535afa9ef93aee8d16b6aaea23d3a5"},"ros-noetic-hpp-fcl-2.3.6-h0664494_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h0664494_21","build_number":21,"depends":["hpp-fcl 2.3.6*"],"platform":"linux","timestamp":1706523729039,"md5":"d814992442bb036cae6811e8f51f6f65","name":"ros-noetic-hpp-fcl","requires":[],"size":3593,"version":"2.3.6","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cede8a7c52c175037be986457846623ea2d33b65889903a283c854e44d4d33a"},"ros-noetic-usb-cam-0.3.7-py39h31a1e0d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["ffmpeg >=4.4.2,<5.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39h31a1e0d_10","timestamp":1687736888422,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"1e59a7e9ac6fc9163ad2ce4e7f61f0d2","name":"ros-noetic-usb-cam","requires":[],"size":77387,"version":"0.3.7","binstar":{"package_id":"6498d212d3b8b5281c25a749","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6be64f43600b1be197f6632125a698b0ac9e01469ca53db775e542bbbb71e044"},"ros-humble-ackermann-steering-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-steering-controllers-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697106151937,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"23b33336a3bad7dc4ecb8a0c810a4269","name":"ros-humble-ackermann-steering-controller","requires":[],"size":48229,"version":"2.26.0","binstar":{"package_id":"649a7fef9c5c2f94af0942d1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4824498e41bb8dd9c5c0b9c3bb7cd33a4536559f76bbd3270fa666b695437c48"},"ros-humble-steering-controllers-library-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105659072,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"bcce684e99bfa825dc0051305a39acf9","name":"ros-humble-steering-controllers-library","requires":[],"size":601014,"version":"2.26.0","binstar":{"package_id":"649a7ff68ed5b16aade6fd3c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e11ae465a6d3e6de23d58ed56e73805428926d2a405631e88d43ad1683166746"},"ros-humble-bicycle-steering-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-steering-controllers-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697106159597,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"63cdae620bdeeb8e64744064df59c562","name":"ros-humble-bicycle-steering-controller","requires":[],"size":45734,"version":"2.26.0","binstar":{"package_id":"649d26023f6fef506095bdcb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c818cd075a8f8a479e71f2e13a14e9ac642be134085641102c320a9d093ff71"},"ros-noetic-octomap-ros-0.4.1-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39he6bf450_10","timestamp":1688952793558,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"8c272e1cc7c3449f0fb373f128d6738b","name":"ros-noetic-octomap-ros","requires":[],"size":22678,"version":"0.4.1","binstar":{"package_id":"64ab5faf6bd8494aaaca1eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f29a63038fbf090d11f98a312ffd946ceb72af3c856da9dda8437ea4237625b"},"ros-noetic-octomap-mapping-0.6.7-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-octomap-server"],"build":"py39he6bf450_10","timestamp":1689795180859,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"597c050e422aa4db8f937fa9b64b3113","name":"ros-noetic-octomap-mapping","requires":[],"size":11152,"version":"0.6.7","binstar":{"package_id":"64b837315ffeaf09f9381e3a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b969ae5d99eaff490dcf14d76bb0d45dac447f3226943b41d46119a6b3c7a559"},"ros-noetic-octomap-server-0.6.7-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-octomap-ros","ros-noetic-pcl-conversions","ros-noetic-pcl-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-visualization-msgs"],"build":"py39he6bf450_10","timestamp":1689794659670,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","subdir":"linux-aarch64","md5":"661d29638a830d61ee917467602094ed","name":"ros-noetic-octomap-server","requires":[],"size":676082,"version":"0.6.7","binstar":{"package_id":"64b8373297519d58ec37b4cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e492ca872512491c204baeca95fa75e7cd595d6298658d753d07b76423038cd3"},"ros-noetic-ackermann-msgs-1.0.2-py39he6bf450_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1692221506207,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39he6bf450_10","md5":"b5a1349856f46d455690cd7348014725","name":"ros-noetic-ackermann-msgs","requires":[],"size":31979,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"795634c9e23d209ad285622f5757ac9638f6a1f4f6cc46548ab0fcffa0784b31"},"ros-humble-vision-msgs-rviz-plugins-4.1.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-rendering","ros-humble-rviz2","ros-humble-vision-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11 >=1.8.6,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"subdir":"linux-aarch64","timestamp":1694919856121,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"28546bbf3771fc5a7525135a44743fea","name":"ros-humble-vision-msgs-rviz-plugins","requires":[],"size":388879,"version":"4.1.0","binstar":{"package_id":"65066cbecf3a8df187552b47","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df1b5a218a8b9903229c40901487acaa7fdb51eb997c8388fa12cc44916528ed"},"ros-humble-range-sensor-broadcaster-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697105598873,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"a65ce81f79d1221252003405cd822601","name":"ros-humble-range-sensor-broadcaster","requires":[],"size":442895,"version":"2.26.0","binstar":{"package_id":"6527c6c94f5fe88a3d983469","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5c7176ab388137e0e017d624f76f409270c4c9e7d9efc08da2262d1b30f6428"},"ros-humble-tricycle-steering-controller-2.26.0-py310h010ba66_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-steering-controllers-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"subdir":"linux-aarch64","timestamp":1697106146756,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py310h010ba66_3","md5":"f19679b7a1bbce1c2026666b2039c4ea","name":"ros-humble-tricycle-steering-controller","requires":[],"size":46980,"version":"2.26.0","binstar":{"package_id":"6527c8ed129c61320cbc78f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf2f3697cebb05cb118486963836a3c3cab207d594df74ac2d32b9f452e5985f"},"ros-noetic-compass-msgs-1.0.3-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698187998947,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"d763734c914467484c0b1cbd87b200a2","name":"ros-noetic-compass-msgs","requires":[],"size":27324,"version":"1.0.3","binstar":{"package_id":"65384a3fda06bb550586ccf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed988768899861da8e4ca8eaef3036a9543192acddc7a7b5090e4130bdbb9520"},"ros-noetic-imu-transformer-0.3.1-py39hf83f24d_10.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":true,"subdir":"linux-aarch64","arch":"aarch64","build":"py39hf83f24d_10","build_number":10,"depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-tf2-sensor-msgs","ros-noetic-topic-tools"],"license":"BSD-3-Clause","platform":"linux","timestamp":1699830324976,"md5":"9da34795bcdd348332325bb70ca8a475","name":"ros-noetic-imu-transformer","requires":[],"size":148523,"version":"0.3.1","binstar":{"package_id":"65384a42c015a21af7c20096","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe2de54e17fb724a4c941cb1b65dc51adee8b3433bce3ea2df37e3a9cac2e79a"},"ros-noetic-rosbash-params-1.1.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbash","ros-noetic-rospy"],"subdir":"linux-aarch64","timestamp":1698187933608,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"21596d5103d45317d6d5d0b5766be513","name":"ros-noetic-rosbash-params","requires":[],"size":13268,"version":"1.1.0","binstar":{"package_id":"65384a45a78bcd2d7fc55bf4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e66b148602d4923de7377e4af1b15b7cf230331e9ff2bcdd6fc4e8e41d4a841c"},"ros-noetic-snmp-ros-1.0.2-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pysnmp","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698187991018,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"50c3b0c911dda91ed237bedd3237ebbf","name":"ros-noetic-snmp-ros","requires":[],"size":13840,"version":"1.0.2","binstar":{"package_id":"65384a62deda3cbfe46f192f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4b34b163140721b4c45d463b6bfe9e22c4db253a8c2880c9092784005919b39"},"ros-noetic-static-transform-mux-1.1.1-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2-msgs"],"subdir":"linux-aarch64","timestamp":1698187936926,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"1e438e553b7aea92162a9385efece168","name":"ros-noetic-static-transform-mux","requires":[],"size":12257,"version":"1.1.1","binstar":{"package_id":"65384a6505ccb2c53caa33f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d641f9963f03804b2687fe1025f0597b7a8cdb43d3b75202067c6922c81e9ec2"},"ros-noetic-tf-remapper-cpp-1.1.1-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-tf2-msgs","ros-noetic-xmlrpcpp"],"subdir":"linux-aarch64","timestamp":1698188063084,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"afcb3183f58c44e356aa7d2305b9a0eb","name":"ros-noetic-tf-remapper-cpp","requires":[],"size":75369,"version":"1.1.1","binstar":{"package_id":"65384a68deda3cbfe46f194c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e41db390e0c3237112fd8cacc7840113455947a7ab4406985cc3b38fd178aafd"},"ros-noetic-tf2-client-1.0.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2","ros-noetic-tf2-ros"],"subdir":"linux-aarch64","timestamp":1698188139991,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"5a7cabcc3be6e16b2993f5a7eceb4c6c","name":"ros-noetic-tf2-client","requires":[],"size":57352,"version":"1.0.0","binstar":{"package_id":"65384a6bf4590c2b64982062","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c2444556c85e26e7a9efdb4e7529c8b366bafbde04585b053c8725a56a08840"},"ros-noetic-tf2-server-1.1.2-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"subdir":"linux-aarch64","timestamp":1698188039785,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"1d053533d257b0089feac67aab1c6580","name":"ros-noetic-tf2-server","requires":[],"size":306005,"version":"1.1.2","binstar":{"package_id":"65384a6e036b6f413e13a60b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d88d942c740977a3661362e0315454f29931054e27bd5d3060a9d68253e539d"},"draco-1.5.6-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"subdir":"linux-aarch64","timestamp":1698187981644,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"5b0435956c055ea1b79889b9b144a03e","name":"draco","requires":[],"size":1581477,"version":"1.5.6","binstar":{"package_id":"65384a7007c1552907c470b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48274b5ff1007ddab8122f54687a66e4706dae860436e9ba1bad7a8c72a66960"},"ros-noetic-dynamic-robot-state-publisher-1.2.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-kdl-parser","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"subdir":"linux-aarch64","timestamp":1698188087749,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"f2a88146346a97ebc87ec16019825587","name":"ros-noetic-dynamic-robot-state-publisher","requires":[],"size":109545,"version":"1.2.0","binstar":{"package_id":"65384a734e508981b6985555","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85ae6264a3799d83025be6f7ddf08f2b7f535c9d638da308ca29cfa32957021b"},"ros-noetic-rosmsg-cpp-1.0.2-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-roslib"],"subdir":"linux-aarch64","timestamp":1698187957003,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"63230031705082515217064acbbe6096","name":"ros-noetic-rosmsg-cpp","requires":[],"size":35191,"version":"1.0.2","binstar":{"package_id":"65384a75f4590c2b64982086","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b099814c08dd60c173a8d8faf29ad3796ff36af3bcc20e1a48764808515c8e8c"},"ros-noetic-cras-docs-common-2.3.3-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosdoc-lite"],"subdir":"linux-aarch64","timestamp":1698188500600,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"3e25471e911649f1addf70d5b3309149","name":"ros-noetic-cras-docs-common","requires":[],"size":55605,"version":"2.3.3","binstar":{"package_id":"65384b59c00a353ecc932292","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bf56ab7ff10b42e5d06a8d3870b339df410c6a8b0aa802176f7b5b962df886a"},"ros-noetic-cras-relative-positional-controller-2.0.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698188573143,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"65b29e90a638b13bfce0ccb90444d87c","name":"ros-noetic-cras-relative-positional-controller","requires":[],"size":58579,"version":"2.0.0","binstar":{"package_id":"65384b62716c4026ed87e6aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a86e3d975132f99cdeaac22fd153d6c91acca29b0f0a5ced6686b068125c77c"},"ros-noetic-movie-publisher-1.4.0-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["ffmpeg","imageio","libgcc-ng >=12","libgcc-ng >=12","libopencv","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-rosbash-params","ros-noetic-rospy","ros-noetic-sensor-msgs"],"subdir":"linux-aarch64","timestamp":1698188503369,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"a3c9e8cdda31ff8fc8bdd824ecf5960c","name":"ros-noetic-movie-publisher","requires":[],"size":20750,"version":"1.4.0","binstar":{"package_id":"65384d28f4590c2b64982fd5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f264bec963e52eebb61f8b6b9bd92fd2c63a16a9618bd5c1ebcfab10951dd797"},"ros-noetic-cras-cpp-common-2.3.3-py39h18edc76_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-class-loader","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-filters","ros-noetic-geometry-msgs","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-topic-tools","urdfdom_headers"],"subdir":"linux-aarch64","timestamp":1698188597325,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39h18edc76_10","md5":"bcb34ee9d7ccf0d9ab1358369a764974","name":"ros-noetic-cras-cpp-common","requires":[],"size":663476,"version":"2.3.3","binstar":{"package_id":"65384d2c54e47f2b8fe04016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fae6ef869b3f09e2789a0b317382eaa5ecbbfa36d22a60734204be685974393"},"ros-noetic-cras-msgs-1.1.1-py39hdade9bb_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698188665959,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hdade9bb_10","md5":"ca85695cf07a19bc9b82b76fbcec7034","name":"ros-noetic-cras-msgs","requires":[],"size":69661,"version":"1.1.1","binstar":{"package_id":"65384d3083c33372c7a92cf4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ba0bfe34b86ea57c49a823afc4b29b8a8ca72cbb05e6dbddd32823e99acdda0"},"ros-noetic-electronic-io-msgs-1.0.3-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698188517780,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"776e304cc5b2ffc46bfffcb2dcc481e5","name":"ros-noetic-electronic-io-msgs","requires":[],"size":85904,"version":"1.0.3","binstar":{"package_id":"65384d33e1025f6c3bbb83c5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3276ee558917331b9ba95eac0b8fbb82d370d413f61d994189f676eb94d3206"},"ros-noetic-robot-body-filter-1.3.1-py39h1d32c13_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-fcl","ros-noetic-filters","ros-noetic-geometric-shapes","ros-noetic-geometry-msgs","ros-noetic-laser-geometry","ros-noetic-message-runtime","ros-noetic-moveit-core","ros-noetic-moveit-ros-perception","ros-noetic-pcl-conversions","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-urdf","ros-noetic-visualization-msgs"],"subdir":"linux-aarch64","timestamp":1698188825795,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39h1d32c13_10","md5":"5c667ef74da5443b126c497bbd083b1a","name":"ros-noetic-robot-body-filter","requires":[],"size":383215,"version":"1.3.1","binstar":{"package_id":"65384d3961cf36dcb286d3b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5dba6c9c748e6aaac5cc15207a27f2de17252a04d9d110c156ed911a0854c654"},"ros-noetic-cras-py-common-2.3.3-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-tf","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"subdir":"linux-aarch64","timestamp":1698189262049,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"6b18f25bc03da60f37613ef25749105a","name":"ros-noetic-cras-py-common","requires":[],"size":74056,"version":"2.3.3","binstar":{"package_id":"65384f1f05ccb2c53caa48da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afeb5f3cd611728a92941bf8f5c07043966ebe523c4dc6006833790941bd82f4"},"ros-noetic-cras-topic-tools-2.3.3-py39h18edc76_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-cras-msgs","ros-noetic-cras-py-common","ros-noetic-nodelet","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-topic-tools"],"subdir":"linux-aarch64","timestamp":1698189861710,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39h18edc76_10","md5":"fcfa1eafc8176b904f443e225cbe2dfb","name":"ros-noetic-cras-topic-tools","requires":[],"size":701727,"version":"2.3.3","binstar":{"package_id":"65384f23036b6f413e13c4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"821f77cdf5e8a59f0787697d0481b0143ba426516ca1d8eb20b4bf47d6ef82e9"},"ros-noetic-electronic-io-1.0.3-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-msgs","ros-noetic-electronic-io-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-srvs"],"subdir":"linux-aarch64","timestamp":1698189320337,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"42ff1d7296528b2dc2ee2193e6d2a502","name":"ros-noetic-electronic-io","requires":[],"size":68782,"version":"1.0.3","binstar":{"package_id":"65384f26deda3cbfe46f2fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbf3b5af129457268ffe3851052c2b26bb29f77130e55faa4ededffb9bb8a9eb"},"ros-noetic-magnetometer-compass-1.0.3-py39hf83f24d_10.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":true,"subdir":"linux-aarch64","arch":"aarch64","build":"py39hf83f24d_10","build_number":10,"depends":["geographiclib-cpp >=2.3,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-compass-msgs","ros-noetic-geometry-msgs","ros-noetic-imu-transformer","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"license":"BSD-3-Clause","platform":"linux","timestamp":1699830860575,"md5":"b0b6f8646db44bb334b44171abdeb561","name":"ros-noetic-magnetometer-compass","requires":[],"size":170866,"version":"1.0.3","binstar":{"package_id":"65384f28e1025f6c3bbb8e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ff3d9fd6a8a8929724929f067a1f15439b823192abfd722fe638fd6ecbeebe3"},"ros-noetic-image-transport-codecs-2.3.3-py39h6fd6261_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libjpeg-turbo >=2.1.4,<3.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-compressed-depth-image-transport","ros-noetic-compressed-image-transport","ros-noetic-cras-cpp-common","ros-noetic-cras-topic-tools","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-pluginlib","ros-noetic-sensor-msgs","ros-noetic-theora-image-transport","ros-noetic-topic-tools"],"subdir":"linux-aarch64","timestamp":1698190584189,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39h6fd6261_10","md5":"f008cfbf6c5195b0d8a1fd979690cdc5","name":"ros-noetic-image-transport-codecs","requires":[],"size":340697,"version":"2.3.3","binstar":{"package_id":"653851306da766c0df88d10f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e39a9e0ab569d13d20f0002741647d80b2f1554fc6257a6aa66e9d63fdef29ae"},"ros-noetic-point-cloud-transport-1.0.11-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-cras-py-common","ros-noetic-cras-topic-tools","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-topic-tools"],"subdir":"linux-aarch64","timestamp":1698190388029,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"7188b1172f166b97e6c5c090ebe5d488","name":"ros-noetic-point-cloud-transport","requires":[],"size":511458,"version":"1.0.11","binstar":{"package_id":"65385134e1e99f3c47ce1e1c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65bc48680d1b6a46afe5a685ac3064210fc1a630781fcded43f2d3f27ff509fc"},"ros-noetic-draco-point-cloud-transport-1.0.5-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["draco","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-point-cloud-transport","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"subdir":"linux-aarch64","timestamp":1698191094879,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"c587ccba1e5c0497f99d1c9f95a7afcc","name":"ros-noetic-draco-point-cloud-transport","requires":[],"size":342599,"version":"1.0.5","binstar":{"package_id":"653853668eccc7ce65bf5cd4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95e3913ca2216746916d6c93bab53b086fdb9e1593ac31b4083bb170f6957dae"},"ros-noetic-point-cloud-color-1.2.1-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-point-cloud-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros"],"subdir":"linux-aarch64","timestamp":1698191129794,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"cca5ccc34506cd97b82001bc6a855db9","name":"ros-noetic-point-cloud-color","requires":[],"size":86006,"version":"1.2.1","binstar":{"package_id":"65385369e1025f6c3bbbaf55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ebbbef4dfe438a1ccd008ed54923c467a36b5863d31def9b3e7d44965b70ea1"},"ros-noetic-point-cloud-transport-plugins-1.0.5-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":false,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-draco-point-cloud-transport"],"subdir":"linux-aarch64","timestamp":1698191691383,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"dec2f3d81242637ccfc14ab64646cd90","name":"ros-noetic-point-cloud-transport-plugins","requires":[],"size":9156,"version":"1.0.5","binstar":{"package_id":"6538536e07c1552907c481ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7f842573adfa4e26d6355f6052dab2a32a19dbc755d1918a8a3eb7ad8f81987"},"ros-noetic-sensor-filters-1.1.1-py39hf83f24d_10.tar.bz2":{"build_number":10,"license":"BSD-3-Clause","has_prefix":true,"machine":"aarch64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-filters","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-point-cloud-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"subdir":"linux-aarch64","timestamp":1698191284823,"arch":"aarch64","operatingsystem":"linux","target-triplet":"aarch64-any-linux","build":"py39hf83f24d_10","md5":"9f91ada64992199ba7561f30a00d76e8","name":"ros-noetic-sensor-filters","requires":[],"size":1950437,"version":"1.1.1","binstar":{"package_id":"6538537134a6e3a34894c87c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8662bc7ee7e08357b284fc6fc28f39db738cd8eceaf87db4f7b8b2b0d04d7fd9"},"ros-noetic-pinocchio-2.6.20-h6a33a49_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h6a33a49_21","build_number":21,"depends":["pinocchio 2.6.20*"],"platform":"linux","timestamp":1706505761514,"md5":"6dce807114d6637b6b1aebb5a0f45d3a","name":"ros-noetic-pinocchio","requires":[],"size":3677,"version":"2.6.20","binstar":{"package_id":"65b70b5aee8d8b5e0ccb253e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cf12d4aeae21dec051ba9ee6abf4404dfb81c476aaef15864543c80d24a60bf"},"ros-noetic-pinocchio-2.6.20-h0664494_21.tar.bz2":{"operatingsystem":"linux","machine":"aarch64","target-triplet":"aarch64-any-linux","has_prefix":false,"subdir":"linux-aarch64","arch":"aarch64","build":"h0664494_21","build_number":21,"depends":["pinocchio 2.6.20*"],"platform":"linux","timestamp":1706523726877,"md5":"dfd1b0e15278349066f97dbc858adf8b","name":"ros-noetic-pinocchio","requires":[],"size":3696,"version":"2.6.20","binstar":{"package_id":"65b70b5aee8d8b5e0ccb253e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab845749009f7403d0e924b0163995ad893f5146604ee34687a6f6db15cb976e"}},"packages.conda":{},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"linux","arch":"aarch64","subdir":"linux-aarch64"}} \ No newline at end of file