From 7fb4149779517b97575ae2ce923ecd8d169232c1 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 29 Jan 2024 04:58:49 +0000 Subject: [PATCH] Add build files 2024-01-29-0458 --- .github/workflows/osx_arm64.yml | 2011 +++++++++++++++++ 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 | 376 +++ deactivate.bat | 18 + deactivate.ps1 | 18 + deactivate.sh | 21 + .../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 | 59 + recipes/ros-noetic-bondpy/bld_catkin.bat | 80 + recipes/ros-noetic-bondpy/build_catkin.sh | 119 + recipes/ros-noetic-bondpy/recipe.yaml | 56 + .../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 + .../ros-noetic-carrot-planner/bld_catkin.bat | 80 + .../ros-noetic-carrot-planner/build_catkin.sh | 119 + recipes/ros-noetic-carrot-planner/recipe.yaml | 69 + 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 + .../ros-noetic-chomp-motion-planner.osx.patch | 16 + .../recipe.yaml | 54 + .../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 + 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 + .../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 + 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 + 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 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 56 + .../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 + .../ros-noetic-dwa-local-planner/recipe.yaml | 76 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 64 + .../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 + recipes/ros-noetic-eigenpy-recipe/recipe.yaml | 17 + .../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 + 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 + .../patch/ros-noetic-gazebo-plugins.osx.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.osx.patch | 13 + .../ros-noetic-gazebo-ros-control/recipe.yaml | 76 + .../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 + .../patch/ros-noetic-gazebo-ros.osx.patch | 14 + recipes/ros-noetic-gazebo-ros/recipe.yaml | 77 + 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 + .../ros-noetic-geometric-shapes/recipe.yaml | 76 + .../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 + .../ros-noetic-global-planner/bld_catkin.bat | 80 + .../ros-noetic-global-planner/build_catkin.sh | 119 + recipes/ros-noetic-global-planner/recipe.yaml | 70 + 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 + .../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 + recipes/ros-noetic-hpp-fcl-recipe/recipe.yaml | 17 + .../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 | 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 + .../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 | 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 + .../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-laser-proc/bld_catkin.bat | 80 + recipes/ros-noetic-laser-proc/build_catkin.sh | 119 + recipes/ros-noetic-laser-proc/recipe.yaml | 60 + .../ros-noetic-librealsense2/bld_catkin.bat | 80 + .../ros-noetic-librealsense2/build_catkin.sh | 119 + .../patch/ros-noetic-librealsense2.patch | 51 + recipes/ros-noetic-librealsense2/recipe.yaml | 55 + .../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-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 + .../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 + .../recipe.yaml | 61 + .../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 + .../ros-noetic-moveit-planners-ompl.osx.patch | 28 + .../recipe.yaml | 74 + .../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 + ...moveit-ros-occupancy-map-monitor.osx.patch | 15 + .../recipe.yaml | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + ...ros-noetic-moveit-ros-perception.osx.patch | 85 + .../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 + 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-navigation/bld_catkin.bat | 80 + recipes/ros-noetic-navigation/build_catkin.sh | 119 + recipes/ros-noetic-navigation/recipe.yaml | 66 + 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 + .../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 | 66 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 63 + .../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 + 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 + .../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 + .../ros-noetic-pinocchio-recipe/recipe.yaml | 17 + .../ros-noetic-plotjuggler-ros/bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-plotjuggler-ros/recipe.yaml | 81 + recipes/ros-noetic-plotjuggler/bld_catkin.bat | 80 + .../ros-noetic-plotjuggler/build_catkin.sh | 119 + .../patch/ros-noetic-plotjuggler.patch | 237 ++ recipes/ros-noetic-plotjuggler/recipe.yaml | 86 + .../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 + .../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 + .../patch/ros-noetic-realsense2-camera.patch | 13 + .../ros-noetic-realsense2-camera/recipe.yaml | 83 + .../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 + .../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 + .../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 + .../ros-noetic-ros-tutorials/bld_catkin.bat | 80 + .../ros-noetic-ros-tutorials/build_catkin.sh | 119 + recipes/ros-noetic-ros-tutorials/recipe.yaml | 56 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../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 + recipes/ros-noetic-rosbag/recipe.yaml | 75 + 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 + .../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/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 + .../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 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosserial-arduino/recipe.yaml | 61 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rosserial-client/recipe.yaml | 58 + .../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 + 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 + recipes/ros-noetic-rostime/recipe.yaml | 54 + 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 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-rqt-ez-publisher/recipe.yaml | 67 + 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.osx.patch | 241 ++ .../patch/ros-noetic-rviz.patch | 126 ++ recipes/ros-noetic-rviz/recipe.yaml | 129 ++ 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 + 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-sick-tim/bld_catkin.bat | 80 + recipes/ros-noetic-sick-tim/build_catkin.sh | 119 + .../patch/ros-noetic-sick-tim.patch | 29 + recipes/ros-noetic-sick-tim/recipe.yaml | 66 + 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-sound-play/bld_catkin.bat | 80 + recipes/ros-noetic-sound-play/build_catkin.sh | 119 + recipes/ros-noetic-sound-play/recipe.yaml | 73 + recipes/ros-noetic-srdfdom/bld_catkin.bat | 80 + recipes/ros-noetic-srdfdom/build_catkin.sh | 119 + recipes/ros-noetic-srdfdom/recipe.yaml | 60 + 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 + .../recipe.yaml | 54 + .../ros-noetic-tf-conversions/bld_catkin.bat | 80 + .../ros-noetic-tf-conversions/build_catkin.sh | 119 + recipes/ros-noetic-tf-conversions/recipe.yaml | 61 + 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-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 + .../patch/ros-noetic-tf2-py.osx.patch | 27 + recipes/ros-noetic-tf2-py/recipe.yaml | 56 + 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-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 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../ros-noetic-turtlebot3-gazebo/recipe.yaml | 66 + .../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 + .../bld_catkin.bat | 80 + .../build_catkin.sh | 119 + .../recipe.yaml | 52 + .../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 + .../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-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 + .../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 | 150 ++ vinca_e69231e952.json | 1 + 1208 files changed, 105731 insertions(+) create mode 100644 .github/workflows/osx_arm64.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/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-carrot-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-carrot-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-carrot-planner/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/patch/ros-noetic-chomp-motion-planner.osx.patch 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-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-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-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-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-ddynamic-reconfigure/bld_catkin.bat create mode 100644 recipes/ros-noetic-ddynamic-reconfigure/build_catkin.sh create mode 100644 recipes/ros-noetic-ddynamic-reconfigure/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-dwa-local-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-dwa-local-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-dwa-local-planner/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-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-eigenpy-recipe/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-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.osx.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/patch/ros-noetic-gazebo-ros-control.osx.patch 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/patch/ros-noetic-gazebo-ros.osx.patch 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/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-global-planner/bld_catkin.bat create mode 100644 recipes/ros-noetic-global-planner/build_catkin.sh create mode 100644 recipes/ros-noetic-global-planner/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-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-hpp-fcl-recipe/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-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-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-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-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-laser-proc/bld_catkin.bat create mode 100644 recipes/ros-noetic-laser-proc/build_catkin.sh create mode 100644 recipes/ros-noetic-laser-proc/recipe.yaml create mode 100644 recipes/ros-noetic-librealsense2/bld_catkin.bat create mode 100644 recipes/ros-noetic-librealsense2/build_catkin.sh create mode 100644 recipes/ros-noetic-librealsense2/patch/ros-noetic-librealsense2.patch create mode 100644 recipes/ros-noetic-librealsense2/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-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-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-move-slow-and-clear/bld_catkin.bat create mode 100644 recipes/ros-noetic-move-slow-and-clear/build_catkin.sh create mode 100644 recipes/ros-noetic-move-slow-and-clear/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/patch/ros-noetic-moveit-planners-ompl.osx.patch 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/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch 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/patch/ros-noetic-moveit-ros-perception.osx.patch 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-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-navigation/bld_catkin.bat create mode 100644 recipes/ros-noetic-navigation/build_catkin.sh create mode 100644 recipes/ros-noetic-navigation/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-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-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/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-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-pinocchio-recipe/recipe.yaml create mode 100644 recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat create mode 100644 recipes/ros-noetic-plotjuggler-ros/build_catkin.sh create mode 100644 recipes/ros-noetic-plotjuggler-ros/recipe.yaml create mode 100644 recipes/ros-noetic-plotjuggler/bld_catkin.bat create mode 100644 recipes/ros-noetic-plotjuggler/build_catkin.sh create mode 100644 recipes/ros-noetic-plotjuggler/patch/ros-noetic-plotjuggler.patch create mode 100644 recipes/ros-noetic-plotjuggler/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-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-camera/bld_catkin.bat create mode 100644 recipes/ros-noetic-realsense2-camera/build_catkin.sh create mode 100644 recipes/ros-noetic-realsense2-camera/patch/ros-noetic-realsense2-camera.patch create mode 100644 recipes/ros-noetic-realsense2-camera/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-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-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-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-type-introspection/bld_catkin.bat create mode 100644 recipes/ros-noetic-ros-type-introspection/build_catkin.sh create mode 100644 recipes/ros-noetic-ros-type-introspection/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/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-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/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-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-arduino/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosserial-arduino/build_catkin.sh create mode 100644 recipes/ros-noetic-rosserial-arduino/recipe.yaml create mode 100644 recipes/ros-noetic-rosserial-client/bld_catkin.bat create mode 100644 recipes/ros-noetic-rosserial-client/build_catkin.sh create mode 100644 recipes/ros-noetic-rosserial-client/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-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/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-ez-publisher/bld_catkin.bat create mode 100644 recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh create mode 100644 recipes/ros-noetic-rqt-ez-publisher/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.osx.patch 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-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-sick-tim/bld_catkin.bat create mode 100644 recipes/ros-noetic-sick-tim/build_catkin.sh create mode 100644 recipes/ros-noetic-sick-tim/patch/ros-noetic-sick-tim.patch create mode 100644 recipes/ros-noetic-sick-tim/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-sound-play/bld_catkin.bat create mode 100644 recipes/ros-noetic-sound-play/build_catkin.sh create mode 100644 recipes/ros-noetic-sound-play/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-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-teleop-twist-keyboard/bld_catkin.bat create mode 100644 recipes/ros-noetic-teleop-twist-keyboard/build_catkin.sh create mode 100644 recipes/ros-noetic-teleop-twist-keyboard/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/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-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/patch/ros-noetic-tf2-py.osx.patch 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-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-gazebo/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-gazebo/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-simulations/bld_catkin.bat create mode 100644 recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh create mode 100644 recipes/ros-noetic-turtlebot3-simulations/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-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-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-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_e69231e952.json diff --git a/.github/workflows/osx_arm64.yml b/.github/workflows/osx_arm64.yml new file mode 100644 index 000000000..538556fc2 --- /dev/null +++ b/.github/workflows/osx_arm64.yml @@ -0,0 +1,2011 @@ +jobs: + stage_0_job_0: + name: catkin ruckig ompl eigenpy-recipe pinocchio-recipe + runs-on: macOS-11 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-catkin ros-noetic-ruckig ros-noetic-ompl ros-noetic-eigenpy-recipe + ros-noetic-pinocchio-recipe + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-catkin ros-noetic-ruckig ros-noetic-ompl ros-noetic-eigenpy-recipe + ros-noetic-pinocchio-recipe + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_0_job_1: + name: hpp-fcl-recipe + runs-on: macOS-11 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hpp-fcl-recipe + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hpp-fcl-recipe + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_1_job_2: + name: cpp-common genmsg ros-environment cmake-modules rosmake + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cpp-common ros-noetic-genmsg ros-noetic-ros-environment + ros-noetic-cmake-modules ros-noetic-rosmake + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cpp-common ros-noetic-genmsg ros-noetic-ros-environment + ros-noetic-cmake-modules ros-noetic-rosmake + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_1_job_3: + name: rosgraph rosclean urdf-parser-plugin roslint media-export + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosgraph ros-noetic-rosclean ros-noetic-urdf-parser-plugin + ros-noetic-roslint ros-noetic-media-export + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosgraph ros-noetic-rosclean ros-noetic-urdf-parser-plugin + ros-noetic-roslint ros-noetic-media-export + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_1_job_4: + name: rosbag-migration-rule octomap random-numbers pybind11-catkin moveit-resources-pr2-description + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbag-migration-rule ros-noetic-octomap ros-noetic-random-numbers + ros-noetic-pybind11-catkin ros-noetic-moveit-resources-pr2-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbag-migration-rule ros-noetic-octomap ros-noetic-random-numbers + ros-noetic-pybind11-catkin ros-noetic-moveit-resources-pr2-description + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_1_job_5: + name: moveit-resources-fanuc-description smclib gazebo-dev code-coverage qwt-dependency + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-fanuc-description ros-noetic-smclib + ros-noetic-gazebo-dev ros-noetic-code-coverage ros-noetic-qwt-dependency + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-fanuc-description ros-noetic-smclib + ros-noetic-gazebo-dev ros-noetic-code-coverage ros-noetic-qwt-dependency + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_1_job_6: + name: rosboost-cfg librealsense2 smach gl-dependency webkit-dependency + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + - stage_0_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosboost-cfg ros-noetic-librealsense2 ros-noetic-smach + ros-noetic-gl-dependency ros-noetic-webkit-dependency + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosboost-cfg ros-noetic-librealsense2 ros-noetic-smach + ros-noetic-gl-dependency ros-noetic-webkit-dependency + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_2_job_7: + name: rostime genpy gennodejs genlisp geneus + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_1_job_2 + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostime ros-noetic-genpy ros-noetic-gennodejs ros-noetic-genlisp + ros-noetic-geneus + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostime ros-noetic-genpy ros-noetic-gennodejs + ros-noetic-genlisp ros-noetic-geneus + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_2_job_8: + name: gencpp rospack roslang rosparam rosmaster + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_1_job_2 + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gencpp ros-noetic-rospack ros-noetic-roslang ros-noetic-rosparam + ros-noetic-rosmaster + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gencpp ros-noetic-rospack ros-noetic-roslang ros-noetic-rosparam + ros-noetic-rosmaster + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_2_job_9: + name: class-loader fcl eigen-stl-containers + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_1_job_2 + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + - stage_1_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-class-loader ros-noetic-fcl ros-noetic-eigen-stl-containers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-class-loader ros-noetic-fcl ros-noetic-eigen-stl-containers + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_3_job_10: + name: roscpp-traits message-generation roslib xmlrpcpp rosbash + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_2_job_7 + - stage_2_job_8 + - stage_2_job_9 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-traits ros-noetic-message-generation ros-noetic-roslib + ros-noetic-xmlrpcpp ros-noetic-rosbash + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-traits ros-noetic-message-generation ros-noetic-roslib + ros-noetic-xmlrpcpp ros-noetic-rosbash + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_4_job_11: + name: roscpp-serialization rosunit roscreate + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_3_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp-serialization ros-noetic-rosunit ros-noetic-roscreate + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp-serialization ros-noetic-rosunit ros-noetic-roscreate + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_5_job_12: + name: message-runtime roslz4 angles roscpp-core + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_4_job_11 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-message-runtime ros-noetic-roslz4 ros-noetic-angles ros-noetic-roscpp-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-message-runtime ros-noetic-roslz4 ros-noetic-angles + ros-noetic-roscpp-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_6_job_13: + name: std-msgs rosbuild std-srvs rosserial-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_5_job_12 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-std-msgs ros-noetic-rosbuild ros-noetic-std-srvs ros-noetic-rosserial-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-std-msgs ros-noetic-rosbuild ros-noetic-std-srvs + ros-noetic-rosserial-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_7_job_14: + name: rosgraph-msgs rosconsole geometry-msgs actionlib-msgs diagnostic-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosgraph-msgs ros-noetic-rosconsole ros-noetic-geometry-msgs + ros-noetic-actionlib-msgs ros-noetic-diagnostic-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosgraph-msgs ros-noetic-rosconsole ros-noetic-geometry-msgs + ros-noetic-actionlib-msgs ros-noetic-diagnostic-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_7_job_15: + name: python-qt-binding bond audio-common-msgs mk uuid-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-python-qt-binding ros-noetic-bond ros-noetic-audio-common-msgs + ros-noetic-mk ros-noetic-uuid-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-python-qt-binding ros-noetic-bond ros-noetic-audio-common-msgs + ros-noetic-mk ros-noetic-uuid-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_7_job_16: + name: smach-msgs turtlebot3-msgs rosbridge-msgs nmea-msgs ackermann-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-smach-msgs ros-noetic-turtlebot3-msgs ros-noetic-rosbridge-msgs + ros-noetic-nmea-msgs ros-noetic-ackermann-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-smach-msgs ros-noetic-turtlebot3-msgs ros-noetic-rosbridge-msgs + ros-noetic-nmea-msgs ros-noetic-ackermann-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_8_job_17: + name: roscpp pluginlib tf2-msgs rosconsole-bridge nav-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roscpp ros-noetic-pluginlib ros-noetic-tf2-msgs ros-noetic-rosconsole-bridge + ros-noetic-nav-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roscpp ros-noetic-pluginlib ros-noetic-tf2-msgs + ros-noetic-rosconsole-bridge ros-noetic-nav-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_8_job_18: + name: visualization-msgs resource-retriever shape-msgs trajectory-msgs octomap-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-msgs ros-noetic-resource-retriever ros-noetic-shape-msgs + ros-noetic-trajectory-msgs ros-noetic-octomap-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-msgs ros-noetic-resource-retriever + ros-noetic-shape-msgs ros-noetic-trajectory-msgs ros-noetic-octomap-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_8_job_19: + name: qt-gui eigen-conversions kdl-conversions qt-gui-py-common move-base-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-qt-gui ros-noetic-eigen-conversions ros-noetic-kdl-conversions + ros-noetic-qt-gui-py-common ros-noetic-move-base-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-qt-gui ros-noetic-eigen-conversions ros-noetic-kdl-conversions + ros-noetic-qt-gui-py-common ros-noetic-move-base-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_8_job_20: + name: roslisp ros qt-dotgraph geographic-msgs graph-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslisp ros-noetic-ros ros-noetic-qt-dotgraph ros-noetic-geographic-msgs + ros-noetic-graph-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslisp ros-noetic-ros ros-noetic-qt-dotgraph + ros-noetic-geographic-msgs ros-noetic-graph-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_8_job_21: + name: ros-babel-fish-test-msgs microstrain-inertial-msgs radar-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-babel-fish-test-msgs ros-noetic-microstrain-inertial-msgs + ros-noetic-radar-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-babel-fish-test-msgs ros-noetic-microstrain-inertial-msgs + ros-noetic-radar-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_9_job_22: + name: rosout rospy tf2 geometric-shapes voxel-grid + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + - stage_8_job_18 + - stage_8_job_19 + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosout ros-noetic-rospy ros-noetic-tf2 ros-noetic-geometric-shapes + ros-noetic-voxel-grid + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosout ros-noetic-rospy ros-noetic-tf2 ros-noetic-geometric-shapes + ros-noetic-voxel-grid + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_9_job_23: + name: bondcpp hardware-interface roscpp-tutorials qt-gui-cpp control-msgs + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + - stage_8_job_18 + - stage_8_job_19 + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bondcpp ros-noetic-hardware-interface ros-noetic-roscpp-tutorials + ros-noetic-qt-gui-cpp ros-noetic-control-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bondcpp ros-noetic-hardware-interface ros-noetic-roscpp-tutorials + ros-noetic-qt-gui-cpp ros-noetic-control-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_9_job_24: + name: turtlesim hector-nav-msgs hector-map-tools visualization-marker-tutorials + pluginlib-tutorials + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + - stage_8_job_18 + - stage_8_job_19 + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlesim ros-noetic-hector-nav-msgs ros-noetic-hector-map-tools + ros-noetic-visualization-marker-tutorials ros-noetic-pluginlib-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlesim ros-noetic-hector-nav-msgs ros-noetic-hector-map-tools + ros-noetic-visualization-marker-tutorials ros-noetic-pluginlib-tutorials + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_9_job_25: + name: ros-type-introspection plotjuggler + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + - stage_8_job_18 + - stage_8_job_19 + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-type-introspection ros-noetic-plotjuggler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-type-introspection ros-noetic-plotjuggler + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_10_job_26: + name: roslaunch tf2-py urdfdom-py tf2-eigen rqt-gui + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_9_job_22 + - stage_9_job_23 + - stage_9_job_24 + - stage_9_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-roslaunch ros-noetic-tf2-py ros-noetic-urdfdom-py ros-noetic-tf2-eigen + ros-noetic-rqt-gui + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-roslaunch ros-noetic-tf2-py ros-noetic-urdfdom-py + ros-noetic-tf2-eigen ros-noetic-rqt-gui + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_10_job_27: + name: bondpy nodelet controller-interface transmission-interface rosserial-python + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_9_job_22 + - stage_9_job_23 + - stage_9_job_24 + - stage_9_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-bondpy ros-noetic-nodelet ros-noetic-controller-interface + ros-noetic-transmission-interface ros-noetic-rosserial-python + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bondpy ros-noetic-nodelet ros-noetic-controller-interface + ros-noetic-transmission-interface ros-noetic-rosserial-python + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_10_job_28: + name: turtlebot3-teleop teleop-twist-keyboard dynamixel-sdk tf2-bullet + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_9_job_22 + - stage_9_job_23 + - stage_9_job_24 + - stage_9_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-turtlebot3-teleop ros-noetic-teleop-twist-keyboard ros-noetic-dynamixel-sdk + ros-noetic-tf2-bullet + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-turtlebot3-teleop ros-noetic-teleop-twist-keyboard + ros-noetic-dynamixel-sdk ros-noetic-tf2-bullet + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_11_job_29: + name: rostest rqt-gui-py rqt-gui-cpp bond-core nodelet-tutorial-math + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_10_job_26 + - stage_10_job_27 + - stage_10_job_28 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostest ros-noetic-rqt-gui-py ros-noetic-rqt-gui-cpp + ros-noetic-bond-core ros-noetic-nodelet-tutorial-math + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostest ros-noetic-rqt-gui-py ros-noetic-rqt-gui-cpp + ros-noetic-bond-core ros-noetic-nodelet-tutorial-math + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_12_job_30: + name: topic-tools rosbag-storage message-filters urdf xacro + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-topic-tools ros-noetic-rosbag-storage ros-noetic-message-filters + ros-noetic-urdf ros-noetic-xacro + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-topic-tools ros-noetic-rosbag-storage ros-noetic-message-filters + ros-noetic-urdf ros-noetic-xacro + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_12_job_31: + name: map-server diagnostic-aggregator diagnostic-updater filters rospy-tutorials + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-map-server ros-noetic-diagnostic-aggregator ros-noetic-diagnostic-updater + ros-noetic-filters ros-noetic-rospy-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-map-server ros-noetic-diagnostic-aggregator ros-noetic-diagnostic-updater + ros-noetic-filters ros-noetic-rospy-tutorials + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_12_job_32: + name: rqt-runtime-monitor rqt-web rqt-top rqt-shell rqt-py-console + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-runtime-monitor ros-noetic-rqt-web ros-noetic-rqt-top + ros-noetic-rqt-shell ros-noetic-rqt-py-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-runtime-monitor ros-noetic-rqt-web ros-noetic-rqt-top + ros-noetic-rqt-shell ros-noetic-rqt-py-console + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_12_job_33: + name: rosauth kdl-parser-py + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosauth ros-noetic-kdl-parser-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosauth ros-noetic-kdl-parser-py + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_13_job_34: + name: rosbag kdl-parser moveit-resources-panda-description srdfdom moveit-resources-prbt-support + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_12_job_30 + - stage_12_job_31 + - stage_12_job_32 + - stage_12_job_33 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbag ros-noetic-kdl-parser ros-noetic-moveit-resources-panda-description + ros-noetic-srdfdom ros-noetic-moveit-resources-prbt-support + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbag ros-noetic-kdl-parser ros-noetic-moveit-resources-panda-description + ros-noetic-srdfdom ros-noetic-moveit-resources-prbt-support + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_13_job_35: + name: joint-limits-interface self-test turtlebot3-description realsense2-description + ros-tutorials + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_12_job_30 + - stage_12_job_31 + - stage_12_job_32 + - stage_12_job_33 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-limits-interface ros-noetic-self-test ros-noetic-turtlebot3-description + ros-noetic-realsense2-description ros-noetic-ros-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-limits-interface ros-noetic-self-test ros-noetic-turtlebot3-description + ros-noetic-realsense2-description ros-noetic-ros-tutorials + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_14_job_36: + name: rostopic rosmsg sensor-msgs diagnostic-analysis + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_13_job_34 + - stage_13_job_35 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rostopic ros-noetic-rosmsg ros-noetic-sensor-msgs ros-noetic-diagnostic-analysis + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rostopic ros-noetic-rosmsg ros-noetic-sensor-msgs + ros-noetic-diagnostic-analysis + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_15_job_37: + name: rosnode rosservice map-msgs image-transport joint-state-publisher + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosnode ros-noetic-rosservice ros-noetic-map-msgs ros-noetic-image-transport + ros-noetic-joint-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosnode ros-noetic-rosservice ros-noetic-map-msgs + ros-noetic-image-transport ros-noetic-joint-state-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_15_job_38: + name: object-recognition-msgs pcl-msgs stereo-msgs image-geometry cv-bridge + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-object-recognition-msgs ros-noetic-pcl-msgs ros-noetic-stereo-msgs + ros-noetic-image-geometry ros-noetic-cv-bridge + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-object-recognition-msgs ros-noetic-pcl-msgs ros-noetic-stereo-msgs + ros-noetic-image-geometry ros-noetic-cv-bridge + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_15_job_39: + name: gazebo-msgs camera-calibration-parsers rqt-topic hls-lfcd-lds-driver rqt-robot-steering + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers ros-noetic-rqt-topic + ros-noetic-hls-lfcd-lds-driver ros-noetic-rqt-robot-steering + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers + ros-noetic-rqt-topic ros-noetic-hls-lfcd-lds-driver ros-noetic-rqt-robot-steering + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_15_job_40: + name: laser-proc mavros-msgs gps-common + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-proc ros-noetic-mavros-msgs ros-noetic-gps-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-proc ros-noetic-mavros-msgs ros-noetic-gps-common + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_16_job_41: + name: actionlib roswtf joint-state-publisher-gui moveit-msgs dynamic-reconfigure + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + - stage_15_job_39 + - stage_15_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-actionlib ros-noetic-roswtf ros-noetic-joint-state-publisher-gui + ros-noetic-moveit-msgs ros-noetic-dynamic-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-actionlib ros-noetic-roswtf ros-noetic-joint-state-publisher-gui + ros-noetic-moveit-msgs ros-noetic-dynamic-reconfigure + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_16_job_42: + name: rqt-logger-level pcl-conversions rqt-bag controller-manager-msgs camera-info-manager + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + - stage_15_job_39 + - stage_15_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-logger-level ros-noetic-pcl-conversions ros-noetic-rqt-bag + ros-noetic-controller-manager-msgs ros-noetic-camera-info-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-logger-level ros-noetic-pcl-conversions ros-noetic-rqt-bag + ros-noetic-controller-manager-msgs ros-noetic-camera-info-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_16_job_43: + name: rqt-image-view polled-camera common-msgs rqt-graph rosbridge-library + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + - stage_15_job_39 + - stage_15_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-image-view ros-noetic-polled-camera ros-noetic-common-msgs + ros-noetic-rqt-graph ros-noetic-rosbridge-library + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-image-view ros-noetic-polled-camera ros-noetic-common-msgs + ros-noetic-rqt-graph ros-noetic-rosbridge-library + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_16_job_44: + name: camera-calibration vision-opencv + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + - stage_15_job_39 + - stage_15_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-camera-calibration ros-noetic-vision-opencv + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-camera-calibration ros-noetic-vision-opencv + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_17_job_45: + name: tf2-ros rqt-py-common sound-play nodelet-topic-tools realtime-tools + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_16_job_41 + - stage_16_job_42 + - stage_16_job_43 + - stage_16_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-ros ros-noetic-rqt-py-common ros-noetic-sound-play + ros-noetic-nodelet-topic-tools ros-noetic-realtime-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-ros ros-noetic-rqt-py-common ros-noetic-sound-play + ros-noetic-nodelet-topic-tools ros-noetic-realtime-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_17_job_46: + name: image-view controller-manager image-publisher actionlib-tutorials compressed-image-transport + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_16_job_41 + - stage_16_job_42 + - stage_16_job_43 + - stage_16_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-view ros-noetic-controller-manager ros-noetic-image-publisher + ros-noetic-actionlib-tutorials ros-noetic-compressed-image-transport + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-view ros-noetic-controller-manager ros-noetic-image-publisher + ros-noetic-actionlib-tutorials ros-noetic-compressed-image-transport + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_17_job_47: + name: ddynamic-reconfigure compressed-depth-image-transport ros-comm theora-image-transport + smach-ros + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_16_job_41 + - stage_16_job_42 + - stage_16_job_43 + - stage_16_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ddynamic-reconfigure ros-noetic-compressed-depth-image-transport + ros-noetic-ros-comm ros-noetic-theora-image-transport ros-noetic-smach-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ddynamic-reconfigure ros-noetic-compressed-depth-image-transport + ros-noetic-ros-comm ros-noetic-theora-image-transport ros-noetic-smach-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_17_job_48: + name: rqt-dep rosapi turtle-actionlib image-common rqt-controller-manager + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_16_job_41 + - stage_16_job_42 + - stage_16_job_43 + - stage_16_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-dep ros-noetic-rosapi ros-noetic-turtle-actionlib + ros-noetic-image-common ros-noetic-rqt-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-dep ros-noetic-rosapi ros-noetic-turtle-actionlib + ros-noetic-image-common ros-noetic-rqt-controller-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_17_job_49: + name: pid + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_16_job_41 + - stage_16_job_42 + - stage_16_job_43 + - stage_16_job_44 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_50: + name: tf2-geometry-msgs tf tf2-kdl tf2-sensor-msgs rqt-console + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-tf2-geometry-msgs ros-noetic-tf ros-noetic-tf2-kdl ros-noetic-tf2-sensor-msgs + ros-noetic-rqt-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-tf2-geometry-msgs ros-noetic-tf ros-noetic-tf2-kdl + ros-noetic-tf2-sensor-msgs ros-noetic-rqt-console + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_51: + name: depth-image-proc image-proc control-toolbox forward-command-controller rqt-robot-monitor + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-depth-image-proc ros-noetic-image-proc ros-noetic-control-toolbox + ros-noetic-forward-command-controller ros-noetic-rqt-robot-monitor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-depth-image-proc ros-noetic-image-proc ros-noetic-control-toolbox + ros-noetic-forward-command-controller ros-noetic-rqt-robot-monitor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_52: + name: rqt-plot joint-state-controller imu-sensor-controller force-torque-sensor-controller + ros-core + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-plot ros-noetic-joint-state-controller ros-noetic-imu-sensor-controller + ros-noetic-force-torque-sensor-controller ros-noetic-ros-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-plot ros-noetic-joint-state-controller ros-noetic-imu-sensor-controller + ros-noetic-force-torque-sensor-controller ros-noetic-ros-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_53: + name: nodelet-core rqt-tf-tree rqt-moveit rqt-service-caller rqt-publisher + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-nodelet-core ros-noetic-rqt-tf-tree ros-noetic-rqt-moveit + ros-noetic-rqt-service-caller ros-noetic-rqt-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-nodelet-core ros-noetic-rqt-tf-tree ros-noetic-rqt-moveit + ros-noetic-rqt-service-caller ros-noetic-rqt-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_54: + name: executive-smach rosbridge-server image-transport-plugins common-tutorials + tf2-tools + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-image-transport-plugins + ros-noetic-common-tutorials ros-noetic-tf2-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-image-transport-plugins + ros-noetic-common-tutorials ros-noetic-tf2-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_18_job_55: + name: ros-babel-fish plotjuggler-ros + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_17_job_45 + - stage_17_job_46 + - stage_17_job_47 + - stage_17_job_48 + - stage_17_job_49 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-babel-fish ros-noetic-plotjuggler-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-babel-fish ros-noetic-plotjuggler-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_56: + name: laser-geometry interactive-markers robot-state-publisher warehouse-ros rqt-reconfigure + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-geometry ros-noetic-interactive-markers ros-noetic-robot-state-publisher + ros-noetic-warehouse-ros ros-noetic-rqt-reconfigure + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-geometry ros-noetic-interactive-markers + ros-noetic-robot-state-publisher ros-noetic-warehouse-ros ros-noetic-rqt-reconfigure + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_57: + name: gazebo-ros pcl-ros tf-conversions rqt-nav-view rgbd-launch + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros ros-noetic-pcl-ros ros-noetic-tf-conversions + ros-noetic-rqt-nav-view ros-noetic-rgbd-launch + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros ros-noetic-pcl-ros ros-noetic-tf-conversions + ros-noetic-rqt-nav-view ros-noetic-rgbd-launch + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_58: + name: stereo-image-proc amcl velocity-controllers position-controllers joint-trajectory-controller + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-stereo-image-proc ros-noetic-amcl ros-noetic-velocity-controllers + ros-noetic-position-controllers ros-noetic-joint-trajectory-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-stereo-image-proc ros-noetic-amcl ros-noetic-velocity-controllers + ros-noetic-position-controllers ros-noetic-joint-trajectory-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_59: + name: diff-drive-controller octomap-ros rqt-msg realsense2-camera gripper-action-controller + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diff-drive-controller ros-noetic-octomap-ros ros-noetic-rqt-msg + ros-noetic-realsense2-camera ros-noetic-gripper-action-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diff-drive-controller ros-noetic-octomap-ros ros-noetic-rqt-msg + ros-noetic-realsense2-camera ros-noetic-gripper-action-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_60: + name: diagnostic-common-diagnostics rqt-pose-view rqt-launch rqt-bag-plugins ros-base + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-diagnostic-common-diagnostics ros-noetic-rqt-pose-view + ros-noetic-rqt-launch ros-noetic-rqt-bag-plugins ros-noetic-ros-base + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-diagnostic-common-diagnostics ros-noetic-rqt-pose-view + ros-noetic-rqt-launch ros-noetic-rqt-bag-plugins ros-noetic-ros-base + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_61: + name: image-rotate turtle-tf2 turtle-tf imu-filter-madgwick imu-complementary-filter + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-image-rotate ros-noetic-turtle-tf2 ros-noetic-turtle-tf + ros-noetic-imu-filter-madgwick ros-noetic-imu-complementary-filter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-image-rotate ros-noetic-turtle-tf2 ros-noetic-turtle-tf + ros-noetic-imu-filter-madgwick ros-noetic-imu-complementary-filter + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_62: + name: fake-localization hector-trajectory-server rosserial-client rosbridge-suite + rqt-ez-publisher + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-fake-localization ros-noetic-hector-trajectory-server + ros-noetic-rosserial-client ros-noetic-rosbridge-suite ros-noetic-rqt-ez-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-fake-localization ros-noetic-hector-trajectory-server + ros-noetic-rosserial-client ros-noetic-rosbridge-suite ros-noetic-rqt-ez-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_19_job_63: + name: microstrain-inertial-driver geometry2 + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_18_job_50 + - stage_18_job_51 + - stage_18_job_52 + - stage_18_job_53 + - stage_18_job_54 + - stage_18_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-microstrain-inertial-driver ros-noetic-geometry2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-microstrain-inertial-driver ros-noetic-geometry2 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_20_job_64: + name: rviz moveit-resources-fanuc-moveit-config costmap-2d laser-filters rqt-robot-dashboard + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_19_job_56 + - stage_19_job_57 + - stage_19_job_58 + - stage_19_job_59 + - stage_19_job_60 + - stage_19_job_61 + - stage_19_job_62 + - stage_19_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz ros-noetic-moveit-resources-fanuc-moveit-config + ros-noetic-costmap-2d ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz ros-noetic-moveit-resources-fanuc-moveit-config + ros-noetic-costmap-2d ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_20_job_65: + name: gazebo-ros-control gazebo-plugins effort-controllers ackermann-steering-controller + laser-assembler + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_19_job_56 + - stage_19_job_57 + - stage_19_job_58 + - stage_19_job_59 + - stage_19_job_60 + - stage_19_job_61 + - stage_19_job_62 + - stage_19_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-control ros-noetic-gazebo-plugins ros-noetic-effort-controllers + ros-noetic-ackermann-steering-controller ros-noetic-laser-assembler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-control ros-noetic-gazebo-plugins ros-noetic-effort-controllers + ros-noetic-ackermann-steering-controller ros-noetic-laser-assembler + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_20_job_66: + name: rqt-srv rqt-action turtlebot3-bringup geometry diagnostics + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_19_job_56 + - stage_19_job_57 + - stage_19_job_58 + - stage_19_job_59 + - stage_19_job_60 + - stage_19_job_61 + - stage_19_job_62 + - stage_19_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-srv ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + ros-noetic-geometry ros-noetic-diagnostics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-srv ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + ros-noetic-geometry ros-noetic-diagnostics + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_20_job_67: + name: interactive-marker-tutorials turtlebot3-gazebo sick-tim perception-pcl image-pipeline + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_19_job_56 + - stage_19_job_57 + - stage_19_job_58 + - stage_19_job_59 + - stage_19_job_60 + - stage_19_job_61 + - stage_19_job_62 + - stage_19_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + ros-noetic-sick-tim ros-noetic-perception-pcl ros-noetic-image-pipeline + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + ros-noetic-sick-tim ros-noetic-perception-pcl ros-noetic-image-pipeline + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_20_job_68: + name: geometry-tutorials turtlebot3-fake rosserial-arduino + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_19_job_56 + - stage_19_job_57 + - stage_19_job_58 + - stage_19_job_59 + - stage_19_job_60 + - stage_19_job_61 + - stage_19_job_62 + - stage_19_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-geometry-tutorials ros-noetic-turtlebot3-fake ros-noetic-rosserial-arduino + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-geometry-tutorials ros-noetic-turtlebot3-fake + ros-noetic-rosserial-arduino + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_21_job_69: + name: moveit-resources-panda-moveit-config nav-core rqt-rviz ros-controllers rqt-common-plugins + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_20_job_64 + - stage_20_job_65 + - stage_20_job_66 + - stage_20_job_67 + - stage_20_job_68 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-rqt-rviz ros-noetic-ros-controllers ros-noetic-rqt-common-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-rqt-rviz ros-noetic-ros-controllers ros-noetic-rqt-common-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_21_job_70: + name: rviz-python-tutorial rviz-plugin-tutorials librviz-tutorial urdf-tutorial + robot + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_20_job_64 + - stage_20_job_65 + - stage_20_job_66 + - stage_20_job_67 + - stage_20_job_68 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-python-tutorial ros-noetic-rviz-plugin-tutorials + ros-noetic-librviz-tutorial ros-noetic-urdf-tutorial ros-noetic-robot + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-python-tutorial ros-noetic-rviz-plugin-tutorials + ros-noetic-librviz-tutorial ros-noetic-urdf-tutorial ros-noetic-robot + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_21_job_71: + name: gazebo-ros-pkgs laser-pipeline rviz-imu-plugin turtlebot3-slam turtlebot3-example + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_20_job_64 + - stage_20_job_65 + - stage_20_job_66 + - stage_20_job_67 + - stage_20_job_68 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-pkgs ros-noetic-laser-pipeline ros-noetic-rviz-imu-plugin + ros-noetic-turtlebot3-slam ros-noetic-turtlebot3-example + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-pkgs ros-noetic-laser-pipeline ros-noetic-rviz-imu-plugin + ros-noetic-turtlebot3-slam ros-noetic-turtlebot3-example + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_21_job_72: + name: rviz-visual-tools turtlebot3-simulations + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_20_job_64 + - stage_20_job_65 + - stage_20_job_66 + - stage_20_job_67 + - stage_20_job_68 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rviz-visual-tools ros-noetic-turtlebot3-simulations + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rviz-visual-tools ros-noetic-turtlebot3-simulations + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_22_job_73: + name: moveit-core base-local-planner navfn clear-costmap-recovery rqt-robot-plugins + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_21_job_69 + - stage_21_job_70 + - stage_21_job_71 + - stage_21_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-core ros-noetic-base-local-planner ros-noetic-navfn + ros-noetic-clear-costmap-recovery ros-noetic-rqt-robot-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-core ros-noetic-base-local-planner ros-noetic-navfn + ros-noetic-clear-costmap-recovery ros-noetic-rqt-robot-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_22_job_74: + name: visualization-tutorials urdf-sim-tutorial perception move-slow-and-clear + imu-tools + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_21_job_69 + - stage_21_job_70 + - stage_21_job_71 + - stage_21_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-tutorials ros-noetic-urdf-sim-tutorial + ros-noetic-perception ros-noetic-move-slow-and-clear ros-noetic-imu-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-tutorials ros-noetic-urdf-sim-tutorial + ros-noetic-perception ros-noetic-move-slow-and-clear ros-noetic-imu-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_23_job_75: + name: moveit-ros-occupancy-map-monitor rotate-recovery moveit-resources-prbt-ikfast-manipulator-plugin + dwa-local-planner moveit-simple-controller-manager + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_22_job_73 + - stage_22_job_74 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-occupancy-map-monitor ros-noetic-rotate-recovery + ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin ros-noetic-dwa-local-planner + ros-noetic-moveit-simple-controller-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-occupancy-map-monitor ros-noetic-rotate-recovery + ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin ros-noetic-dwa-local-planner + ros-noetic-moveit-simple-controller-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_23_job_76: + name: chomp-motion-planner viz simulators global-planner carrot-planner + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_22_job_73 + - stage_22_job_74 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-chomp-motion-planner ros-noetic-viz ros-noetic-simulators + ros-noetic-global-planner ros-noetic-carrot-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-chomp-motion-planner ros-noetic-viz ros-noetic-simulators + ros-noetic-global-planner ros-noetic-carrot-planner + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_24_job_77: + name: moveit-ros-planning move-base moveit-resources-prbt-moveit-config moveit-ros-control-interface + desktop + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_23_job_75 + - stage_23_job_76 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_25_job_78: + name: moveit-kinematics moveit-ros-warehouse moveit-ros-robot-interaction moveit-ros-perception + moveit-fake-controller-manager + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_24_job_77 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_25_job_79: + name: moveit-resources-prbt-pg70-support moveit-planners-ompl turtlebot3-navigation + desktop-full navigation + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_24_job_77 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-pg70-support ros-noetic-moveit-planners-ompl + ros-noetic-turtlebot3-navigation ros-noetic-desktop-full ros-noetic-navigation + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-pg70-support ros-noetic-moveit-planners-ompl + ros-noetic-turtlebot3-navigation ros-noetic-desktop-full ros-noetic-navigation + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_25_job_80: + name: moveit-visual-tools + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_24_job_77 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_26_job_81: + name: moveit-ros-move-group moveit-plugins moveit-ros-benchmarks turtlebot3 + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_25_job_78 + - stage_25_job_79 + - stage_25_job_80 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-move-group ros-noetic-moveit-plugins ros-noetic-moveit-ros-benchmarks + ros-noetic-turtlebot3 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-move-group ros-noetic-moveit-plugins + ros-noetic-moveit-ros-benchmarks ros-noetic-turtlebot3 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_27_job_82: + name: moveit-ros-manipulation moveit-ros-planning-interface + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_26_job_81 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-manipulation ros-noetic-moveit-ros-planning-interface + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-manipulation ros-noetic-moveit-ros-planning-interface + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_28_job_83: + name: moveit-commander moveit-ros-visualization moveit-planners-chomp + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_27_job_82 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_29_job_84: + name: pilz-industrial-motion-planner-testutils moveit-setup-assistant moveit-ros + pilz-industrial-motion-planner + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_28_job_83 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pilz-industrial-motion-planner-testutils ros-noetic-moveit-setup-assistant + ros-noetic-moveit-ros ros-noetic-pilz-industrial-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pilz-industrial-motion-planner-testutils ros-noetic-moveit-setup-assistant + ros-noetic-moveit-ros ros-noetic-pilz-industrial-motion-planner + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh + stage_30_job_85: + name: moveit-planners moveit + runs-on: macOS-11 + strategy: + fail-fast: false + needs: + - stage_29_job_84 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-planners ros-noetic-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-planners ros-noetic-moveit + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx_arm64.sh +name: build_osx +on: + push: + branches: + - buildbranch_osx_arm64 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..fd9a9ecc9 --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,376 @@ +ros-noetic-catkin +ros-noetic-ruckig +ros-noetic-ompl +ros-noetic-eigenpy-recipe +ros-noetic-pinocchio-recipe +ros-noetic-hpp-fcl-recipe +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-code-coverage +ros-noetic-qwt-dependency +ros-noetic-rosboost-cfg +ros-noetic-librealsense2 +ros-noetic-smach +ros-noetic-gl-dependency +ros-noetic-webkit-dependency +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-roscpp-traits +ros-noetic-message-generation +ros-noetic-roslib +ros-noetic-xmlrpcpp +ros-noetic-rosbash +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-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-graph-msgs +ros-noetic-ros-babel-fish-test-msgs +ros-noetic-microstrain-inertial-msgs +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-ros-type-introspection +ros-noetic-plotjuggler +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-teleop-twist-keyboard +ros-noetic-dynamixel-sdk +ros-noetic-tf2-bullet +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-turtlebot3-description +ros-noetic-realsense2-description +ros-noetic-ros-tutorials +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-hls-lfcd-lds-driver +ros-noetic-rqt-robot-steering +ros-noetic-laser-proc +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-camera-calibration +ros-noetic-vision-opencv +ros-noetic-tf2-ros +ros-noetic-rqt-py-common +ros-noetic-sound-play +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-ddynamic-reconfigure +ros-noetic-compressed-depth-image-transport +ros-noetic-ros-comm +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-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-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-tf2-tools +ros-noetic-ros-babel-fish +ros-noetic-plotjuggler-ros +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-realsense2-camera +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-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-rosserial-client +ros-noetic-rosbridge-suite +ros-noetic-rqt-ez-publisher +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-gazebo-plugins +ros-noetic-effort-controllers +ros-noetic-ackermann-steering-controller +ros-noetic-laser-assembler +ros-noetic-rqt-srv +ros-noetic-rqt-action +ros-noetic-turtlebot3-bringup +ros-noetic-geometry +ros-noetic-diagnostics +ros-noetic-interactive-marker-tutorials +ros-noetic-turtlebot3-gazebo +ros-noetic-sick-tim +ros-noetic-perception-pcl +ros-noetic-image-pipeline +ros-noetic-geometry-tutorials +ros-noetic-turtlebot3-fake +ros-noetic-rosserial-arduino +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-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-turtlebot3-simulations +ros-noetic-moveit-core +ros-noetic-base-local-planner +ros-noetic-navfn +ros-noetic-clear-costmap-recovery +ros-noetic-rqt-robot-plugins +ros-noetic-visualization-tutorials +ros-noetic-urdf-sim-tutorial +ros-noetic-perception +ros-noetic-move-slow-and-clear +ros-noetic-imu-tools +ros-noetic-moveit-ros-occupancy-map-monitor +ros-noetic-rotate-recovery +ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin +ros-noetic-dwa-local-planner +ros-noetic-moveit-simple-controller-manager +ros-noetic-chomp-motion-planner +ros-noetic-viz +ros-noetic-simulators +ros-noetic-global-planner +ros-noetic-carrot-planner +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-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-navigation +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-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/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..5a8e56a93 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..7b5fc20c4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..c27762347 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..27d669e31 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..94388db28 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..d32e41e52 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_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..7d7a77e8f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..dcefcd968 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..89bed71c4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..9ed8cd6b0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..519757284 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3eeb258e5 --- /dev/null +++ b/recipes/ros-noetic-bondcpp/recipe.yaml @@ -0,0 +1,59 @@ +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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-bond + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-roscpp + - ros-noetic-smclib + run: + - boost-cpp + - 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..ab7736f52 --- /dev/null +++ b/recipes/ros-noetic-bondpy/recipe.yaml @@ -0,0 +1,56 @@ +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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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: + - 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..2776ff3c0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..1be73b6c2 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..abceaa4c8 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-carrot-planner/bld_catkin.bat b/recipes/ros-noetic-carrot-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-carrot-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-carrot-planner/build_catkin.sh b/recipes/ros-noetic-carrot-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-carrot-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-carrot-planner/recipe.yaml b/recipes/ros-noetic-carrot-planner/recipe.yaml new file mode 100644 index 000000000..c4e861dff --- /dev/null +++ b/recipes/ros-noetic-carrot-planner/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-carrot-planner + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/carrot_planner/1.17.3-1 + folder: ros-noetic-carrot-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-costmap-2d + - 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-angles + - ros-noetic-base-local-planner + - ros-noetic-costmap-2d + - ros-noetic-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - 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-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..6c87ffaf8 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/patch/ros-noetic-chomp-motion-planner.osx.patch b/recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch new file mode 100644 index 000000000..2721e4b6e --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/patch/ros-noetic-chomp-motion-planner.osx.patch @@ -0,0 +1,16 @@ +diff --git a/src/chomp_trajectory.cpp b/src/chomp_trajectory.cpp +index af2c9c9c0..8291b0135 100644 +--- a/src/chomp_trajectory.cpp ++++ b/src/chomp_trajectory.cpp +@@ -153,9 +153,10 @@ void ChompTrajectory::fillInMinJerk() + + // calculate the spline coefficients for each joint: + // (these are for the special case of zero start and end vel and acc) +- std::vector coeff(num_joints_); ++ std::vector> coeff(num_joints_); + for (size_t i = 0; i < num_joints_; i++) + { ++ coeff[i].resize(6); + double x0 = (*this)(start_index, i); + double x1 = (*this)(end_index, i); + coeff[i][0] = x0; 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..128cc9d40 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml @@ -0,0 +1,54 @@ +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 + patches: + - patch/ros-noetic-chomp-motion-planner.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a335b8fcf --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..f0f8a6775 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..906687ba7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e860607c9 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..d11611c3b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..36d062626 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..4f4bda8a3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3cabe02bf --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..016a05b55 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ecd1a8eeb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..770e59c66 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2db2cd811 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6dbbb11f7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..529e25d21 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..abfdaee6a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..64c4c20cd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-ddynamic-reconfigure/bld_catkin.bat b/recipes/ros-noetic-ddynamic-reconfigure/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ddynamic-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-ddynamic-reconfigure/build_catkin.sh b/recipes/ros-noetic-ddynamic-reconfigure/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ddynamic-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-ddynamic-reconfigure/recipe.yaml b/recipes/ros-noetic-ddynamic-reconfigure/recipe.yaml new file mode 100644 index 000000000..72ddeaa19 --- /dev/null +++ b/recipes/ros-noetic-ddynamic-reconfigure/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-ddynamic-reconfigure + version: 0.3.2 +source: + git_url: https://github.com/pal-gbp/ddynamic_reconfigure.git + git_rev: release/noetic/ddynamic_reconfigure/0.3.2-1 + folder: ros-noetic-ddynamic-reconfigure/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gmock + - 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-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..7ba492889 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..aa200cfb8 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d82aea33c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4a080abeb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4216cdf08 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d9a6d05c7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(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..31cba9395 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a7a129ce3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..16797a77b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..047df91a3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-dwa-local-planner/bld_catkin.bat b/recipes/ros-noetic-dwa-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dwa-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-dwa-local-planner/build_catkin.sh b/recipes/ros-noetic-dwa-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dwa-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-dwa-local-planner/recipe.yaml b/recipes/ros-noetic-dwa-local-planner/recipe.yaml new file mode 100644 index 000000000..c1d95e6e2 --- /dev/null +++ b/recipes/ros-noetic-dwa-local-planner/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-dwa-local-planner + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/dwa_local_planner/1.17.3-1 + folder: ros-noetic-dwa-local-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-dynamic-reconfigure + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - 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-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..a4aa10209 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..8e56d97aa --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ea6f58a9e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d86e790e4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..e69ae82df --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-eigenpy-recipe/recipe.yaml b/recipes/ros-noetic-eigenpy-recipe/recipe.yaml new file mode 100644 index 000000000..724af3e7c --- /dev/null +++ b/recipes/ros-noetic-eigenpy-recipe/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-eigenpy-recipe + version: "3.1.0" + +build: + number: 21 + +outputs: + - package: + name: ros-noetic-eigenpy + version: "3.1.0" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-eigenpy', max_pin='x.x.x') }}" + requirements: + run: + - eigenpy 3.1.0 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..d842f4eeb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4d3e30e5d --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..cf08ecdb6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..b689eed3e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..aa3ee6f3f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2d19469e4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..388c52f49 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..a206cd569 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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.osx.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch new file mode 100644 index 000000000..c2936c065 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.osx.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0404e94..24c72cc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,6 +58,8 @@ generate_dynamic_reconfigure_options( + cfg/Hokuyo.cfg + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + include_directories(include + ${Boost_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} 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..dbf8f32d5 --- /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.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/patch/ros-noetic-gazebo-ros-control.osx.patch b/recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch new file mode 100644 index 000000000..f68fbf7f5 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/patch/ros-noetic-gazebo-ros-control.osx.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 58304f3..c8c5f20 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,6 +32,8 @@ catkin_package( + LIBRARIES ${PROJECT_NAME} default_robot_hw_sim + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + link_directories( + ${catkin_LIBRARY_DIRS} + ) 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..75323c141 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml @@ -0,0 +1,76 @@ +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 + patches: + - patch/ros-noetic-gazebo-ros-control.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3af7e610a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/patch/ros-noetic-gazebo-ros.osx.patch b/recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch new file mode 100644 index 000000000..d60d7b794 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/patch/ros-noetic-gazebo-ros.osx.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1d5f7aa..8d1b0cb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -69,6 +69,8 @@ catkin_package( + TinyXML + ) + ++add_definitions(-D_LIBCPP_DISABLE_AVAILABILITY) ++ + include_directories( + include + ${Boost_INCLUDE_DIRS} + diff --git a/recipes/ros-noetic-gazebo-ros/recipe.yaml b/recipes/ros-noetic-gazebo-ros/recipe.yaml new file mode 100644 index 000000000..704adbabf --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/recipe.yaml @@ -0,0 +1,77 @@ +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 + patches: + - patch/ros-noetic-gazebo-ros.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2c4b439b0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e8bc5412a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ef5735dd6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c507532be --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..27f873ad8 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..aa5f7516c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6562e0728 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/recipe.yaml b/recipes/ros-noetic-geometric-shapes/recipe.yaml new file mode 100644 index 000000000..bb1962f7c --- /dev/null +++ b/recipes/ros-noetic-geometric-shapes/recipe.yaml @@ -0,0 +1,76 @@ +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 + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..ab563eff0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..42a55fd7a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8aff8405c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..eaa773492 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6bbe91b9c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-global-planner/bld_catkin.bat b/recipes/ros-noetic-global-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-global-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-global-planner/build_catkin.sh b/recipes/ros-noetic-global-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-global-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-global-planner/recipe.yaml b/recipes/ros-noetic-global-planner/recipe.yaml new file mode 100644 index 000000000..712ab5a7e --- /dev/null +++ b/recipes/ros-noetic-global-planner/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-global-planner + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/global_planner/1.17.3-1 + folder: ros-noetic-global-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-navfn + - 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-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..001a33a16 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ae6d870e0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5093aa215 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c1c95cf16 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..108170871 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..476345723 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..34952af40 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4a6fac633 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-hpp-fcl-recipe/recipe.yaml b/recipes/ros-noetic-hpp-fcl-recipe/recipe.yaml new file mode 100644 index 000000000..e8882e50a --- /dev/null +++ b/recipes/ros-noetic-hpp-fcl-recipe/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-hpp-fcl-recipe + version: "2.3.6" + +build: + number: 21 + +outputs: + - package: + name: ros-noetic-hpp-fcl + version: "2.3.6" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-hpp-fcl', max_pin='x.x.x') }}" + requirements: + run: + - hpp-fcl 2.3.6 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..161ed0d8a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3191ced56 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..39e974c7c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d209ca26c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..defae2a70 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..fd1ea8e6f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..6e6130800 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4cdedaadf --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f567bb572 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..59b193380 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..1c6541f9a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..300521467 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..84cfbd751 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..83be5ed77 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..b35e9c723 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..535face67 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..136e24621 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a2c540472 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..424ffc867 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..db455ad97 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..2001b1fda --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..537fb48b7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..edb74a956 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..d827f662c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..df246d0fa --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..27fd9be11 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..3cde97d33 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-laser-proc/bld_catkin.bat b/recipes/ros-noetic-laser-proc/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-laser-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-laser-proc/build_catkin.sh b/recipes/ros-noetic-laser-proc/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-laser-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-laser-proc/recipe.yaml b/recipes/ros-noetic-laser-proc/recipe.yaml new file mode 100644 index 000000000..1ea539e0d --- /dev/null +++ b/recipes/ros-noetic-laser-proc/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-laser-proc + version: 0.1.6 +source: + git_url: https://github.com/ros-gbp/laser_proc-release.git + git_rev: release/noetic/laser_proc/0.1.6-1 + folder: ros-noetic-laser-proc/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - 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-librealsense2/bld_catkin.bat b/recipes/ros-noetic-librealsense2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-librealsense2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-librealsense2/build_catkin.sh b/recipes/ros-noetic-librealsense2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-librealsense2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-librealsense2/patch/ros-noetic-librealsense2.patch b/recipes/ros-noetic-librealsense2/patch/ros-noetic-librealsense2.patch new file mode 100644 index 000000000..3912f55f8 --- /dev/null +++ b/recipes/ros-noetic-librealsense2/patch/ros-noetic-librealsense2.patch @@ -0,0 +1,51 @@ +diff --git a/CMake/unix_config.cmake b/CMake/unix_config.cmake +index 4ec81bb..c4102dc 100644 +--- a/CMake/unix_config.cmake ++++ b/CMake/unix_config.cmake +@@ -8,8 +8,12 @@ macro(os_set_flags) + + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE) + if(${MACHINE} MATCHES "arm-*") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") ++ if(NOT APPLE) ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -latomic") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -latomic") ++ endif() + elseif(${MACHINE} MATCHES "aarch64-*") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstrict-align -ftree-vectorize") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstrict-align -ftree-vectorize") +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 902e549..b16f92f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,6 +2,10 @@ + cmake_minimum_required(VERSION 3.1.0) + project(librealsense2 LANGUAGES CXX C) + ++if (WIN32) ++ file(COPY ${CMAKE_SOURCE_DIR}/src/win7/drivers/IntelRealSense_D400_series_win7.inf DESTINATION ${CMAKE_SOURCE_DIR}) ++endif() ++ + include(CMake/lrs_options.cmake) + include(CMake/connectivity_check.cmake) + #Deprecation message, should be removed in future releases +diff --git a/tools/rs-server/CMakeLists.txt b/tools/rs-server/CMakeLists.txt +index 617a723..8594e3f 100644 +--- a/tools/rs-server/CMakeLists.txt ++++ b/tools/rs-server/CMakeLists.txt +@@ -14,7 +14,11 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + + set(DEPENDENCIES ${DEPENDENCIES} realsense2 Threads::Threads) + +-set(CMAKE_CXX_FLAGS "-DNEWLOCALE_NOT_USED=1 -DBSD=1 -DSOCKLEN_T=socklen_t -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1 -DNO_OPENSSL=1 -latomic") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNEWLOCALE_NOT_USED=1 -DBSD=1 -DSOCKLEN_T=socklen_t -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DALLOW_RTSP_SERVER_PORT_REUSE=1 -DNO_OPENSSL=1") ++ ++if(NOT APPLE) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -latomic" ++endif() + + SET(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-pthread") + diff --git a/recipes/ros-noetic-librealsense2/recipe.yaml b/recipes/ros-noetic-librealsense2/recipe.yaml new file mode 100644 index 000000000..ad2819d56 --- /dev/null +++ b/recipes/ros-noetic-librealsense2/recipe.yaml @@ -0,0 +1,55 @@ +package: + name: ros-noetic-librealsense2 + version: 2.50.0 +source: + git_url: https://github.com/IntelRealSense/librealsense2-release.git + git_rev: release/noetic/librealsense2/2.50.0-1 + folder: ros-noetic-librealsense2/src/work + patches: + - patch/ros-noetic-librealsense2.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libusb + - numpy + - openssl + - pip + - sel(build_platform == target_platform): pkg-config + - 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-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..0a484941f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-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..3f29c87e8 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6ef3de09d --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..e5aa22077 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..55571eb34 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..11d9b5580 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..cd3b71337 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..decd2d48f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4f954427b --- /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.0 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_driver/3.2.0-3 + 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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..4768dd075 --- /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.0 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_msgs/3.2.0-3 + folder: ros-noetic-microstrain-inertial-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..080b372c0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9b9643348 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d0a345a14 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-move-slow-and-clear/bld_catkin.bat b/recipes/ros-noetic-move-slow-and-clear/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-move-slow-and-clear/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-slow-and-clear/build_catkin.sh b/recipes/ros-noetic-move-slow-and-clear/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-move-slow-and-clear/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-slow-and-clear/recipe.yaml b/recipes/ros-noetic-move-slow-and-clear/recipe.yaml new file mode 100644 index 000000000..cf9c841ec --- /dev/null +++ b/recipes/ros-noetic-move-slow-and-clear/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-move-slow-and-clear + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/move_slow_and_clear/1.17.3-1 + folder: ros-noetic-move-slow-and-clear/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-nav-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + run: + - 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 + - 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..2ac910df5 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..648bbd57f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..26cc4b45a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e8a697d27 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..d3f55eaf0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a5c0bed3f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/patch/ros-noetic-moveit-planners-ompl.osx.patch b/recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch new file mode 100644 index 000000000..3f7453ae4 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/patch/ros-noetic-moveit-planners-ompl.osx.patch @@ -0,0 +1,28 @@ +diff --git a/ompl_interface/CMakeLists.txt b/ompl_interface/CMakeLists.txt +index e44e0ecb1..bb1a6fdbb 100644 +--- a/ompl_interface/CMakeLists.txt ++++ b/ompl_interface/CMakeLists.txt +@@ -21,6 +21,23 @@ add_library(${MOVEIT_LIB_NAME} + ) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + ++if(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_C "${CMAKE_C_COMPILER}") ++ set(OpenMP_C_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES}) ++endif() ++if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_CXX "${CMAKE_CXX_COMPILER}") ++ set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++endif() ++ + find_package(OpenMP REQUIRED) + + target_link_libraries(${MOVEIT_LIB_NAME} ${OMPL_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES}) 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..d22306489 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml @@ -0,0 +1,74 @@ +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 + patches: + - patch/ros-noetic-moveit-planners-ompl.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e18f41240 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..532b41122 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..15a8427b1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e31da6efc --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5c326ea56 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..aba568b11 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d90aba4eb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e048de5ad --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..eb7cbeb97 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8a2eb826c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4646a79fe --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..192188dee --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f7037131b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..08e56a289 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..5abd5aa39 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch new file mode 100644 index 000000000..89b893d1a --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c62d9c555..d083863bd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,10 +14,6 @@ endif() + + find_package(Boost REQUIRED thread) + +-if(APPLE) +- find_package(X11 REQUIRED) +-endif(APPLE) +- + find_package(catkin REQUIRED COMPONENTS + moveit_core + moveit_msgs 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..076338ab3 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml @@ -0,0 +1,66 @@ +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 + patches: + - patch/ros-noetic-moveit-ros-occupancy-map-monitor.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/patch/ros-noetic-moveit-ros-perception.osx.patch b/recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch new file mode 100644 index 000000000..cf4fb7cb0 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/patch/ros-noetic-moveit-ros-perception.osx.patch @@ -0,0 +1,85 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e2e3dc26e..735d225f4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,11 @@ + cmake_minimum_required(VERSION 3.1.3) + project(moveit_ros_perception) + +-option(WITH_OPENGL "Build the parts that depend on OpenGL" ON) ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64") ++ option(WITH_OPENGL "Build the parts that depend on OpenGL" OFF) ++else() ++ option(WITH_OPENGL "Build the parts that depend on OpenGL" ON) ++endif() + + find_package(Boost REQUIRED thread) + +@@ -12,6 +16,7 @@ if(WITH_OPENGL) + endif() + find_package(OpenGL REQUIRED) + find_package(GLEW REQUIRED) ++ list(INSERT CMAKE_FRAMEWORK_PATH 0 /System/Library/Frameworks) + find_package(GLUT REQUIRED) + set(gl_LIBS ${gl_LIBS} ${OPENGL_LIBRARIES}) + set(perception_GL_INCLUDE_DIRS "mesh_filter/include" "depth_image_octomap_updater/include") +@@ -45,6 +50,25 @@ find_package(catkin REQUIRED COMPONENTS + moveit_build_options() + + find_package(Eigen3 REQUIRED) ++ ++ ++ if(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_C "${CMAKE_C_COMPILER}") ++ set(OpenMP_C_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES}) ++ endif() ++ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ set(OpenMP_CXX "${CMAKE_CXX_COMPILER}") ++ set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") ++ set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5") ++ set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libgomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES}) ++ endif() ++ + find_package(OpenMP REQUIRED) + find_package(OpenCV) + +diff --git a/mesh_filter/src/gl_renderer.cpp b/mesh_filter/src/gl_renderer.cpp +index 834d2b4ed..8ba0300b2 100644 +--- a/mesh_filter/src/gl_renderer.cpp ++++ b/mesh_filter/src/gl_renderer.cpp +@@ -37,11 +37,13 @@ + #include + #ifdef __APPLE__ + #include ++#include ++#include + #else + #include +-#endif + #include + #include ++#endif + #include + #include + #include +@@ -399,8 +401,13 @@ void mesh_filter::GLRenderer::createGLContext() + glutHideWindow(); + + for (int i = 0; i < 10; ++i) ++ { ++#ifdef __APPLE__ ++ glutCheckLoop(); ++#else + glutMainLoopEvent(); +- ++#endif ++ } + context_[thread_id] = std::pair(1, window_id); + } + else 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..91aa89b75 --- /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 + patches: + - patch/ros-noetic-moveit-ros-perception.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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 + - glew + - llvm-openmp + - 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: + - glew + - llvm-openmp + - 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..33bd5001e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..40c2c0b92 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..7ab5773b1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..41a5831c5 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..1c1fe39a5 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..23131d052 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..bf10a3bfd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..2d0eab178 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9540d9a24 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..fef698564 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..065fa777c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..0b72cfcb6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..368f81579 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-navigation/bld_catkin.bat b/recipes/ros-noetic-navigation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-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-navigation/build_catkin.sh b/recipes/ros-noetic-navigation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-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-navigation/recipe.yaml b/recipes/ros-noetic-navigation/recipe.yaml new file mode 100644 index 000000000..c8d3202ee --- /dev/null +++ b/recipes/ros-noetic-navigation/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-navigation + version: 1.17.3 +source: + git_url: https://github.com/ros-gbp/navigation-release.git + git_rev: release/noetic/navigation/1.17.3-1 + folder: ros-noetic-navigation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-base-local-planner + - ros-noetic-carrot-planner + - ros-noetic-clear-costmap-recovery + - ros-noetic-costmap-2d + - ros-noetic-dwa-local-planner + - ros-noetic-fake-localization + - ros-noetic-global-planner + - ros-noetic-map-server + - ros-noetic-move-base + - ros-noetic-move-base-msgs + - ros-noetic-move-slow-and-clear + - ros-noetic-nav-core + - ros-noetic-navfn + - ros-noetic-rotate-recovery + - ros-noetic-voxel-grid + - 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..11b7107fd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..2a2ff3c0b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..04991665f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..dc4b42935 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..faee7e795 --- /dev/null +++ b/recipes/ros-noetic-nodelet/recipe.yaml @@ -0,0 +1,66 @@ +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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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 + - 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..a34d8affd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..73eb5f73f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ebc056025 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/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..8b26359c1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_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..9bc74bac3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..6228eb947 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..614b8d0c6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9b2f92edc --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..23ed81086 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..0700e5225 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f30be4f8f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4c0d06588 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..779250df4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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-pinocchio-recipe/recipe.yaml b/recipes/ros-noetic-pinocchio-recipe/recipe.yaml new file mode 100644 index 000000000..9d2ea6ecc --- /dev/null +++ b/recipes/ros-noetic-pinocchio-recipe/recipe.yaml @@ -0,0 +1,17 @@ +package: + name: ros-noetic-pinocchio-recipe + version: "2.6.20" + +build: + number: 21 + +outputs: + - package: + name: ros-noetic-pinocchio + version: "2.6.20" + build: + run_exports: + - "{{ pin_subpackage('ros-noetic-pinocchio', max_pin='x.x.x') }}" + requirements: + run: + - pinocchio 2.6.20 diff --git a/recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat b/recipes/ros-noetic-plotjuggler-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-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-plotjuggler-ros/build_catkin.sh b/recipes/ros-noetic-plotjuggler-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-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-plotjuggler-ros/recipe.yaml b/recipes/ros-noetic-plotjuggler-ros/recipe.yaml new file mode 100644 index 000000000..2753886a8 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-ros/recipe.yaml @@ -0,0 +1,81 @@ +package: + name: ros-noetic-plotjuggler-ros + version: 2.0.0 +source: + git_url: https://github.com/PlotJuggler/plotjuggler-ros-plugins-release.git + git_rev: release/noetic/plotjuggler_ros/2.0.0-1 + folder: ros-noetic-plotjuggler-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-plotjuggler + - ros-noetic-ros-type-introspection + - ros-noetic-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-plotjuggler + - ros-noetic-ros-type-introspection + - ros-noetic-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-tf2-msgs + - 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-plotjuggler/bld_catkin.bat b/recipes/ros-noetic-plotjuggler/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-plotjuggler/build_catkin.sh b/recipes/ros-noetic-plotjuggler/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-plotjuggler/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-plotjuggler/patch/ros-noetic-plotjuggler.patch b/recipes/ros-noetic-plotjuggler/patch/ros-noetic-plotjuggler.patch new file mode 100644 index 000000000..42bdbd236 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler/patch/ros-noetic-plotjuggler.patch @@ -0,0 +1,237 @@ +diff --git a/3rdparty/QCodeEditor/CMakeLists.txt b/3rdparty/QCodeEditor/CMakeLists.txt +index 84282fe1f..c37ae8f49 100644 +--- a/3rdparty/QCodeEditor/CMakeLists.txt ++++ b/3rdparty/QCodeEditor/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6) ++cmake_minimum_required(VERSION 3.20) + project(QCodeEditor) + + set(CMAKE_CXX_STANDARD 11) +@@ -69,10 +69,7 @@ set(CMAKE_AUTOMOC On) + # Create code from resource files + set(CMAKE_AUTORCC ON) + +-# Find includes in corresponding build directories +-find_package(Qt5Core CONFIG REQUIRED) +-find_package(Qt5Widgets CONFIG REQUIRED) +-find_package(Qt5Gui CONFIG REQUIRED) ++find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED) + + add_library(QCodeEditor STATIC + ${RESOURCES_FILE} +@@ -84,21 +81,6 @@ target_include_directories(QCodeEditor PUBLIC + include + ) + +-if(CMAKE_COMPILER_IS_GNUCXX) +- target_compile_options(QCodeEditor +- PRIVATE +- -ansi +- -pedantic +- -Wall +- -Wextra +- -Weffc++ +- -Woverloaded-virtual +- -Winit-self +- -std=c++11 +- -Wunreachable-code +- ) +-endif(CMAKE_COMPILER_IS_GNUCXX) +- + target_link_libraries(QCodeEditor + Qt5::Core + Qt5::Widgets +diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +index 6b650f1b..f384e3f1 100644 +--- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt ++++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +@@ -4,6 +4,8 @@ project(QtADS LANGUAGES CXX) + + include_directories(include/Qads) + ++find_package(XCB REQUIRED) ++ + find_package(Qt5 5.5 COMPONENTS Core Gui Widgets REQUIRED) + if (UNIX AND NOT APPLE) + find_package(Qt5 5.5 COMPONENTS X11Extras REQUIRED) +@@ -67,7 +69,8 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets + + if(UNIX AND NOT APPLE) + target_link_libraries(qt_advanced_docking PUBLIC Qt5::X11Extras) +- target_link_libraries(qt_advanced_docking PRIVATE xcb) ++ target_link_libraries(qt_advanced_docking PUBLIC ${XCB_LIBRARIES}) ++ target_include_directories(qt_advanced_docking SYSTEM PUBLIC ${XCB_INCLUDE_DIRS}) + endif() + + set_target_properties(qt_advanced_docking PROPERTIES + +diff --git a/3rdparty/lua-5.4.3/CMakeLists.txt b/3rdparty/lua-5.4.3/CMakeLists.txt +index 6f682a3e6..676feecb1 100644 +--- a/3rdparty/lua-5.4.3/CMakeLists.txt ++++ b/3rdparty/lua-5.4.3/CMakeLists.txt +@@ -1,3 +1,5 @@ ++include_directories( ./src ) ++ + set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/lapi.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/lcode.c +@@ -32,7 +34,7 @@ set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/loadlib.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/linit.c + ) +-set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) ++# set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) + + add_compile_options(-fPIC) + +@@ -40,7 +42,7 @@ add_library(lua_static STATIC + ${LUA_LIB_SRCS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/lua.c + ) +-target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) ++# target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) + + add_library(lua_objects OBJECT ${LUA_LIB_SRCS}) + +@@ -53,3 +55,11 @@ if(EMSCRIPTEN) + endif() + target_compile_definitions(lua_static PUBLIC ${LUA_DEFINITIONS}) + ++install( ++ TARGETS ++ lua_static ++ EXPORT export_lua_static ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++ INCLUDES DESTINATION include ) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0c12d11a..37e5db3c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -123,11 +123,9 @@ find_package(Qt5 REQUIRED COMPONENTS + set( QT_LINK_LIBRARIES + Qt5::Core + Qt5::Widgets +- Qt5::PrintSupport + Qt5::Xml + Qt5::Concurrent + Qt5::Svg +- Qt5::OpenGL + Qt5::WebSockets + ) + +@@ -193,7 +191,7 @@ if (BASE_AS_SHARED) + ${PLOTJUGGLER_BASE_SRC} + ${PLOTJUGGLER_BASE_MOCS} + ) +- target_link_libraries(plotjuggler_base PRIVATE lua_objects plotjuggler_qwt_objects) ++ target_link_libraries(plotjuggler_base PRIVATE ${QT_LINK_LIBRARIES} lua_objects plotjuggler_qwt_objects) + else() + add_library(plotjuggler_base STATIC + ${PLOTJUGGLER_BASE_SRC} +@@ -201,13 +199,6 @@ else() + ) + endif() + +-# target_link_libraries(plotjuggler_base plotjuggler_qwt) +- +-target_include_directories(plotjuggler_base INTERFACE +- $ +- $ +-) +- + ######################### INSTALL #################################### + + if(COMPILING_WITH_CATKIN) +@@ -224,8 +215,9 @@ elseif(COMPILING_WITH_AMENT) + set(PJ_PLUGIN_INSTALL_DIRECTORY lib/${PROJECT_NAME} ) + + ament_export_targets( +- ${PROJECT_NAME}Targets + export_plotjuggler_qwt ++ export_lua_static ++ ${PROJECT_NAME}Targets + HAS_LIBRARY_TARGET) + ament_package() + +diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake +new file mode 100644 +index 00000000..a2e2757a +--- /dev/null ++++ b/cmake/FindXCB.cmake +@@ -0,0 +1,51 @@ ++# - FindXCB ++# ++# Copyright 2015 Valve Coporation ++ ++find_package(PkgConfig) ++ ++if(NOT XCB_FIND_COMPONENTS) ++ set(XCB_FIND_COMPONENTS xcb) ++endif() ++ ++include(FindPackageHandleStandardArgs) ++set(XCB_FOUND true) ++set(XCB_INCLUDE_DIRS "") ++set(XCB_LIBRARIES "") ++foreach(comp ${XCB_FIND_COMPONENTS}) ++ # component name ++ string(TOUPPER ${comp} compname) ++ string(REPLACE "-" "_" compname ${compname}) ++ # header name ++ string(REPLACE "xcb-" "" headername xcb/${comp}.h) ++ # library name ++ set(libname ${comp}) ++ ++ pkg_check_modules(PC_${comp} QUIET ${comp}) ++ ++ find_path(${compname}_INCLUDE_DIR NAMES ${headername} ++ HINTS ++ ${PC_${comp}_INCLUDEDIR} ++ ${PC_${comp}_INCLUDE_DIRS} ++ ) ++ ++ find_library(${compname}_LIBRARY NAMES ${libname} ++ HINTS ++ ${PC_${comp}_LIBDIR} ++ ${PC_${comp}_LIBRARY_DIRS} ++ ) ++ ++ find_package_handle_standard_args(${comp} ++ FOUND_VAR ${comp}_FOUND ++ REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ ++ list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) ++ list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) ++ ++ if(NOT ${comp}_FOUND) ++ set(XCB_FOUND false) ++ endif() ++endforeach() ++ ++list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) +diff --git a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +index 084c93cb..d484adf6 100644 +--- a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt ++++ b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +@@ -4,7 +4,7 @@ include_directories( ../ ) + add_definitions(${QT_DEFINITIONS}) + add_definitions(-DQT_PLUGIN) + +-find_package(Protobuf QUIET) ++find_package(Protobuf QUIET CONFIG) + + if( Protobuf_FOUND) + message(STATUS "[Protobuf] found") +@@ -24,7 +24,7 @@ if( Protobuf_FOUND) + target_link_libraries(ProtobufParser + ${Qt5Widgets_LIBRARIES} + ${Qt5Xml_LIBRARIES} +- ${Protobuf_LIBRARIES} ++ protobuf::libprotobuf + plotjuggler_base + plotjuggler_qwt) + diff --git a/recipes/ros-noetic-plotjuggler/recipe.yaml b/recipes/ros-noetic-plotjuggler/recipe.yaml new file mode 100644 index 000000000..867bad2b6 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-plotjuggler + version: 3.8.9 +source: + git_url: https://github.com/facontidavide/plotjuggler-release.git + git_rev: release/noetic/plotjuggler/3.8.9-1 + folder: ros-noetic-plotjuggler/src/work + patches: + - patch/ros-noetic-plotjuggler.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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 + - cppzmq + - sel(linux): elfutils + - libprotobuf + - lz4 + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - protobuf + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-roslib + - zeromq + - zstd + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - cppzmq + - libprotobuf + - lz4 + - protobuf + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-roslib + - zeromq + - zstd + - 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-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..949b8175f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..cb67f26be --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..0def17bd6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..24f9eb1ea --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6c7b76592 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..77b1eaa68 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..1b1c6cc80 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(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..21fcc3265 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..a3918520c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4e590c2c0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..43d0b78de --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8b95f6d37 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..fa79733a0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-camera/bld_catkin.bat b/recipes/ros-noetic-realsense2-camera/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-realsense2-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-realsense2-camera/build_catkin.sh b/recipes/ros-noetic-realsense2-camera/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-realsense2-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-realsense2-camera/patch/ros-noetic-realsense2-camera.patch b/recipes/ros-noetic-realsense2-camera/patch/ros-noetic-realsense2-camera.patch new file mode 100644 index 000000000..2a8f89a7a --- /dev/null +++ b/recipes/ros-noetic-realsense2-camera/patch/ros-noetic-realsense2-camera.patch @@ -0,0 +1,13 @@ +diff --git a/src/base_realsense_node.cpp b/src/base_realsense_node.cpp +index f918500..531a2e9 100644 +--- a/src/base_realsense_node.cpp ++++ b/src/base_realsense_node.cpp +@@ -2153,7 +2153,7 @@ void BaseRealSenseNode::publishPointCloud(rs2::points pc, const ros::Time& t, co + return; + ROS_INFO_STREAM_ONCE("publishing " << (_ordered_pc ? "" : "un") << "ordered pointcloud."); + +- rs2_stream texture_source_id = static_cast(_pointcloud_filter->get_option(rs2_option::RS2_OPTION_STREAM_FILTER)); ++ rs2_stream texture_source_id = static_cast((int)_pointcloud_filter->get_option(rs2_option::RS2_OPTION_STREAM_FILTER)); + bool use_texture = texture_source_id != RS2_STREAM_ANY; + static int warn_count(0); + static const int DISPLAY_WARN_NUMBER(5); diff --git a/recipes/ros-noetic-realsense2-camera/recipe.yaml b/recipes/ros-noetic-realsense2-camera/recipe.yaml new file mode 100644 index 000000000..a7e751581 --- /dev/null +++ b/recipes/ros-noetic-realsense2-camera/recipe.yaml @@ -0,0 +1,83 @@ +package: + name: ros-noetic-realsense2-camera + version: 2.3.2 +source: + git_url: https://github.com/IntelRealSense/realsense-ros-release.git + git_rev: release/noetic/realsense2_camera/2.3.2-1 + folder: ros-noetic-realsense2-camera/src/work + patches: + - patch/ros-noetic-realsense2-camera.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-cv-bridge + - ros-noetic-ddynamic-reconfigure + - ros-noetic-diagnostic-updater + - ros-noetic-genmsg + - ros-noetic-image-transport + - ros-noetic-librealsense2 + - ros-noetic-message-generation + - 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-tf + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-ddynamic-reconfigure + - ros-noetic-diagnostic-updater + - ros-noetic-genmsg + - ros-noetic-image-transport + - ros-noetic-librealsense2 + - 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-tf + - 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..ce53f9fec --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..350d9bf77 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a5f55e774 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..4cb37d9c2 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..6beda2e1d --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..f377fccee --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5661e6fb3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4f2040d89 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..99546b62e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ffa76101a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..64d222340 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..538f15f34 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..aa103a751 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..e882d5618 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-type-introspection/bld_catkin.bat b/recipes/ros-noetic-ros-type-introspection/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-type-introspection/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-type-introspection/build_catkin.sh b/recipes/ros-noetic-ros-type-introspection/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-type-introspection/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-type-introspection/recipe.yaml b/recipes/ros-noetic-ros-type-introspection/recipe.yaml new file mode 100644 index 000000000..2eb1fe726 --- /dev/null +++ b/recipes/ros-noetic-ros-type-introspection/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-ros-type-introspection + version: 2.1.0 +source: + git_url: https://github.com/facontidavide/ros_type_introspection-release.git + git_rev: release/noetic/ros_type_introspection/2.1.0-1 + folder: ros-noetic-ros-type-introspection/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-roscpp-serialization + - ros-noetic-rostime + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostime + - 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..d38949bea --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ac32d86c2 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..15e2e4e02 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..b4fe82005 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ad0b8d753 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/recipe.yaml b/recipes/ros-noetic-rosbag/recipe.yaml new file mode 100644 index 000000000..8484505c0 --- /dev/null +++ b/recipes/ros-noetic-rosbag/recipe.yaml @@ -0,0 +1,75 @@ +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 + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/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..f6dd4c456 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c92492e74 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2055a14a0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..f340d65e1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..99a00b927 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..201b684d1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..12f992e0a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(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..64af193e2 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ed293cdc3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..0298e197f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..4230e3976 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ed28b3a94 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..89a31bd6b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9becb1416 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..643ef3f80 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..3fab53d20 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..2f97c6bda --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..19f2a7d34 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..6e0d8f5a9 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f6d1742cf --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..dc7078eb0 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..bef07646e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..874949294 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..74c7ff43b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..4a5b88652 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e0430f7af --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/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..84f2ca7da --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..1c189d427 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..615aebf62 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..fe8e9aa26 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..d0c0e727c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..c6a9da80c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f0d1e4791 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-arduino/bld_catkin.bat b/recipes/ros-noetic-rosserial-arduino/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial-arduino/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-arduino/build_catkin.sh b/recipes/ros-noetic-rosserial-arduino/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial-arduino/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-arduino/recipe.yaml b/recipes/ros-noetic-rosserial-arduino/recipe.yaml new file mode 100644 index 000000000..10ef6565c --- /dev/null +++ b/recipes/ros-noetic-rosserial-arduino/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-rosserial-arduino + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial_arduino/0.9.2-1 + folder: ros-noetic-rosserial-arduino/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-rospy + - ros-noetic-rosserial-client + - ros-noetic-rosserial-msgs + - ros-noetic-rosserial-python + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-rospy + - ros-noetic-rosserial-client + - ros-noetic-rosserial-msgs + - ros-noetic-rosserial-python + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosserial-client/bld_catkin.bat b/recipes/ros-noetic-rosserial-client/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial-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-rosserial-client/build_catkin.sh b/recipes/ros-noetic-rosserial-client/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial-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-rosserial-client/recipe.yaml b/recipes/ros-noetic-rosserial-client/recipe.yaml new file mode 100644 index 000000000..29cdc3d04 --- /dev/null +++ b/recipes/ros-noetic-rosserial-client/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-rosserial-client + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial_client/0.9.2-1 + folder: ros-noetic-rosserial-client/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-rosbash + - ros-noetic-rosserial-msgs + - ros-noetic-rosunit + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbash + - ros-noetic-rospy + - ros-noetic-rosserial-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-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..40d1d46dc --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5c265276c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(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-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..d32091941 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..18bf66124 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/recipe.yaml b/recipes/ros-noetic-rostime/recipe.yaml new file mode 100644 index 000000000..d12d726bb --- /dev/null +++ b/recipes/ros-noetic-rostime/recipe.yaml @@ -0,0 +1,54 @@ +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 + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..dd533bb7a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d4467d451 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..b8fa9c5ca --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..217479049 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..db5317554 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e5af30521 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..b4389b888 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ca6584338 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a216ea672 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5cd7a5652 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..024aa0d2d --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-ez-publisher/bld_catkin.bat b/recipes/ros-noetic-rqt-ez-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-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-ez-publisher/build_catkin.sh b/recipes/ros-noetic-rqt-ez-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-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-ez-publisher/recipe.yaml b/recipes/ros-noetic-rqt-ez-publisher/recipe.yaml new file mode 100644 index 000000000..9835dcc0f --- /dev/null +++ b/recipes/ros-noetic-rqt-ez-publisher/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-rqt-ez-publisher + version: 0.6.1 +source: + git_url: https://github.com/OTL/rqt_ez_publisher-release.git + git_rev: release/noetic/rqt_ez_publisher/0.6.1-1 + folder: ros-noetic-rqt-ez-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-geometry-msgs + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-rospy + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-py-common + - ros-noetic-tf + - ros-noetic-tf2-msgs + - 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..3246c7ba2 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..10d131282 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..2cc68d832 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e16c2f8e4 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8c5fbc247 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..eb06806be --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..0edd4b1fb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..bf5ef22b5 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c6771b45e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a187ee47c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..69faef3df --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8d9badd12 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..fb9403c4f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3dbd4ee15 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d310b05cb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..7cc00ba31 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5b1ebaf4e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c0c4dcee9 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..db0742228 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..bdef7f876 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..41ee7b6f6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a3865ce29 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..28831e077 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d0ace94b1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f7f694cb7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9644afdfa --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..9ab5da299 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4d82b98da --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..47ccd72ce --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..6b30c75e1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_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..1200e0f3a --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..95e3909dd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..45d9759c7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..004869ef3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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.osx.patch b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch new file mode 100644 index 000000000..e96482872 --- /dev/null +++ b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.osx.patch @@ -0,0 +1,241 @@ +diff --git a/src/rviz/default_plugin/camera_display.cpp b/src/rviz/default_plugin/camera_display.cpp +index 49abcfea8..af47fef99 100644 +--- a/src/rviz/default_plugin/camera_display.cpp ++++ b/src/rviz/default_plugin/camera_display.cpp +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -102,6 +103,8 @@ CameraDisplay::CameraDisplay() + SLOT(forceRender())); + zoom_property_->setMin(0.00001); + zoom_property_->setMax(100000); ++ ++ has_run_once_ = false; + } + + CameraDisplay::~CameraDisplay() +@@ -127,8 +130,15 @@ void CameraDisplay::onInitialize() + { + ImageDisplayBase::onInitialize(); + +- bg_scene_node_ = scene_node_->createChildSceneNode(); +- fg_scene_node_ = scene_node_->createChildSceneNode(); ++ { ++ static uint32_t count = 0; ++ std::stringstream ss; ++ ss << "CameraDisplay" << count++; ++ camera_scene_manager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC, ss.str()); ++ } ++ ++ bg_scene_node_ = camera_scene_manager_->getRootSceneNode()->createChildSceneNode(); ++ fg_scene_node_ = camera_scene_manager_->getRootSceneNode()->createChildSceneNode(); + + { + static int count = 0; +@@ -189,6 +199,7 @@ void CameraDisplay::onInitialize() + render_panel_->getRenderWindow()->setActive(false); + render_panel_->resize(640, 480); + render_panel_->initialize(context_->getSceneManager(), context_); ++ // render_panel_->initialize(camera_scene_manager_, context_); + + setAssociatedWidget(render_panel_); + +@@ -212,8 +223,16 @@ void CameraDisplay::onInitialize() + void CameraDisplay::preRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) + { + QString image_position = image_position_property_->getString(); +- bg_scene_node_->setVisible(caminfo_ok_ && (image_position == BACKGROUND || image_position == BOTH)); +- fg_scene_node_->setVisible(caminfo_ok_ && (image_position == OVERLAY || image_position == BOTH)); ++ ++ if (has_run_once_) ++ { ++ fg_scene_node_->setVisible(caminfo_ok_ && (image_position == OVERLAY || image_position == BOTH)); ++ bg_scene_node_->setVisible(caminfo_ok_ && (image_position == BACKGROUND || image_position == BOTH)); ++ } ++ else ++ { ++ has_run_once_ = true; ++ } + + // set view flags on all displays + visibility_property_->update(); +diff --git a/src/rviz/default_plugin/camera_display.h b/src/rviz/default_plugin/camera_display.h +index 175a3a240..ccd4d6f3e 100644 +--- a/src/rviz/default_plugin/camera_display.h ++++ b/src/rviz/default_plugin/camera_display.h +@@ -96,6 +96,8 @@ class CameraDisplay : public ImageDisplayBase, public Ogre::RenderTargetListener + ROSImageTexture texture_; + RenderPanel* render_panel_; + ++ Ogre::SceneManager* camera_scene_manager_; ++ + private Q_SLOTS: + void forceRender(); + void updateAlpha(); +@@ -135,6 +137,8 @@ private Q_SLOTS: + bool force_render_; + + uint32_t vis_bit_; ++ ++ bool has_run_once_; + }; + + } // namespace rviz +diff --git a/src/rviz/default_plugin/image_display.cpp b/src/rviz/default_plugin/image_display.cpp +index 3b5d50cea..e424ea68a 100644 +--- a/src/rviz/default_plugin/image_display.cpp ++++ b/src/rviz/default_plugin/image_display.cpp +@@ -72,6 +72,7 @@ ImageDisplay::ImageDisplay() : ImageDisplayBase(), texture_() + this, SLOT(updateNormalizeOptions())); + + got_float_image_ = false; ++ has_run_once_ = false; + } + + void ImageDisplay::onInitialize() +@@ -114,12 +115,13 @@ void ImageDisplay::onInitialize() + screen_rect_->setBoundingBox(aabInf); + setMaterial(*screen_rect_, material_); + img_scene_node_->attachObject(screen_rect_); ++ img_scene_node_->setVisible(false); + } + + render_panel_ = new RenderPanel(); ++ render_panel_->getRenderWindow()->addListener(this); + render_panel_->getRenderWindow()->setAutoUpdated(false); + render_panel_->getRenderWindow()->setActive(false); +- + render_panel_->resize(640, 480); + render_panel_->initialize(img_scene_manager_, context_); + +@@ -136,12 +138,32 @@ ImageDisplay::~ImageDisplay() + { + if (initialized()) + { ++ render_panel_->getRenderWindow()->removeListener(this); ++ + delete render_panel_; + delete screen_rect_; + removeAndDestroyChildNode(img_scene_node_->getParentSceneNode(), img_scene_node_); + } + } + ++void ImageDisplay::preRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) ++{ ++ if (has_run_once_) ++ { ++ img_scene_node_->setVisible(true); ++ } ++ else ++ { ++ has_run_once_ = true; ++ img_scene_node_->setVisible(false); ++ } ++} ++ ++void ImageDisplay::postRenderTargetUpdate(const Ogre::RenderTargetEvent& /*evt*/) ++{ ++ img_scene_node_->setVisible(false); ++} ++ + void ImageDisplay::onEnable() + { + ImageDisplayBase::subscribe(); +diff --git a/src/rviz/default_plugin/image_display.h b/src/rviz/default_plugin/image_display.h +index 88492c191..e5b1335bf 100644 +--- a/src/rviz/default_plugin/image_display.h ++++ b/src/rviz/default_plugin/image_display.h +@@ -59,7 +59,7 @@ namespace rviz + * \class ImageDisplay + * + */ +-class ImageDisplay : public ImageDisplayBase ++class ImageDisplay : public ImageDisplayBase, public Ogre::RenderTargetListener + { + Q_OBJECT + public: +@@ -71,6 +71,10 @@ class ImageDisplay : public ImageDisplayBase + void update(float wall_dt, float ros_dt) override; + void reset() override; + ++ // Overrides from Ogre::RenderTargetListener ++ void preRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) override; ++ void postRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) override; ++ + public Q_SLOTS: + virtual void updateNormalizeOptions(); + +@@ -98,6 +102,8 @@ public Q_SLOTS: + FloatProperty* max_property_; + IntProperty* median_buffer_size_property_; + bool got_float_image_; ++ ++ bool has_run_once_; + }; + + } // namespace rviz +diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp +index 14d83396c..d1a500d30 100644 +--- a/src/rviz/ogre_helpers/render_system.cpp ++++ b/src/rviz/ogre_helpers/render_system.cpp +@@ -423,7 +423,7 @@ Ogre::RenderWindow* RenderSystem::makeRenderWindow(WindowIDType window_id, + // Created a non-stereo window. Discard it and try again (below) + // without the stereo parameter. + ogre_root_->detachRenderTarget(window); +- window->destroy(); ++ ogre_root_->destroyRenderTarget(window); + window = nullptr; + stream << "x"; + is_stereo = false; +@@ -480,6 +480,7 @@ Ogre::RenderWindow* RenderSystem::tryMakeRenderWindow(const std::string& name, + if (x_baddrawable_error) + { + ogre_root_->detachRenderTarget(window); ++ ogre_root_->destroyRenderTarget(window); + window = nullptr; + x_baddrawable_error = false; + } +diff --git a/src/rviz/render_panel.cpp b/src/rviz/render_panel.cpp +index 5532741d4..10fc63314 100644 +--- a/src/rviz/render_panel.cpp ++++ b/src/rviz/render_panel.cpp +@@ -35,6 +35,7 @@ + + #include + #include ++#include + + #include + #include +@@ -100,6 +101,12 @@ void RenderPanel::leaveEvent(QEvent* /*event*/) + } + } + ++void RenderPanel::resizeEvent(QResizeEvent* event) ++{ ++ QWidget::resizeEvent(event); ++ render_window_->windowMovedOrResized(); ++} ++ + void RenderPanel::onRenderWindowMouseEvents(QMouseEvent* event) + { + int last_x = mouse_x_; +diff --git a/src/rviz/render_panel.h b/src/rviz/render_panel.h +index 2ce29c6f8..e1ef904e9 100644 +--- a/src/rviz/render_panel.h ++++ b/src/rviz/render_panel.h +@@ -118,6 +118,8 @@ class RenderPanel : public QtOgreRenderWindow, public Ogre::SceneManager::Listen + /// Called when any mouse event happens inside the render window + void onRenderWindowMouseEvents(QMouseEvent* event); + ++ void resizeEvent(QResizeEvent* event) override; ++ + // QWidget mouse events all get sent to onRenderWindowMouseEvents(). + // QMouseEvent.type() distinguishes them later. + void mouseMoveEvent(QMouseEvent* event) override + 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..2f450bb89 --- /dev/null +++ b/recipes/ros-noetic-rviz/recipe.yaml @@ -0,0 +1,129 @@ +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 + - patch/ros-noetic-rviz.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..97f2a19e1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..94533e131 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..835252d85 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-sick-tim/bld_catkin.bat b/recipes/ros-noetic-sick-tim/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sick-tim/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sick-tim/build_catkin.sh b/recipes/ros-noetic-sick-tim/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sick-tim/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sick-tim/patch/ros-noetic-sick-tim.patch b/recipes/ros-noetic-sick-tim/patch/ros-noetic-sick-tim.patch new file mode 100644 index 000000000..6198ec75f --- /dev/null +++ b/recipes/ros-noetic-sick-tim/patch/ros-noetic-sick-tim.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 36cee0a..4cf01f5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,6 +11,7 @@ find_package(catkin REQUIRED + ) + + find_package(PkgConfig REQUIRED) ++pkg_check_modules(libudev libudev) + pkg_check_modules(libusb libusb-1.0) + + find_package(Boost REQUIRED COMPONENTS system) +@@ -23,7 +24,7 @@ catkin_package( + LIBRARIES sick_tim_3xx + INCLUDE_DIRS include) + +-include_directories(include ${catkin_INCLUDE_DIRS} ${libusb_INCLUDE_DIRS}) ++include_directories(include ${catkin_INCLUDE_DIRS} ${libudev_INCLUDE_DIRS} ${libusb_INCLUDE_DIRS}) + + add_library(sick_tim_3xx + src/sick_tim_common.cpp +@@ -33,6 +34,7 @@ add_library(sick_tim_3xx + add_dependencies(sick_tim_3xx ${PROJECT_NAME}_gencfg ${catkin_EXPORTED_TARGETS}) + target_link_libraries(sick_tim_3xx + ${catkin_LIBRARIES} ++ ${libudev_LIBRARIES} + ${libusb_LIBRARIES}) + + add_executable(sick_tim310s01 diff --git a/recipes/ros-noetic-sick-tim/recipe.yaml b/recipes/ros-noetic-sick-tim/recipe.yaml new file mode 100644 index 000000000..b10a9eb00 --- /dev/null +++ b/recipes/ros-noetic-sick-tim/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-sick-tim + version: 0.0.18 +source: + git_url: https://github.com/uos-gbp/sick_tim-release.git + git_rev: release/noetic/sick_tim/0.0.18-1 + folder: ros-noetic-sick-tim/src/work + patches: + - patch/ros-noetic-sick-tim.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libusb + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-sensor-msgs + run: + - libusb + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-xacro + - 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..0a8e57564 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2cf8f67a1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..0b2c30306 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..1b74acca6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..bceec7bb9 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-sound-play/bld_catkin.bat b/recipes/ros-noetic-sound-play/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sound-play/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sound-play/build_catkin.sh b/recipes/ros-noetic-sound-play/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sound-play/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sound-play/recipe.yaml b/recipes/ros-noetic-sound-play/recipe.yaml new file mode 100644 index 000000000..41fc09deb --- /dev/null +++ b/recipes/ros-noetic-sound-play/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-sound-play + version: 0.3.17 +source: + git_url: https://github.com/ros-gbp/audio_common-release.git + git_rev: release/noetic/sound_play/0.3.17-1 + folder: ros-noetic-sound-play/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-audio-common-msgs + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-roslib + - setuptools + run: + - festival + - festvox-kallpc16k + - gst-plugins-base + - gst-plugins-good + - gst-plugins-ugly + - gstreamer + - pygobject + - python + - ros-distro-mutex 0.5 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 + - 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..68fdcc687 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..403520031 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..477bbbac7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..5451bf6df --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..16d88ad35 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-teleop-twist-keyboard/bld_catkin.bat b/recipes/ros-noetic-teleop-twist-keyboard/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-keyboard/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-keyboard/build_catkin.sh b/recipes/ros-noetic-teleop-twist-keyboard/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-keyboard/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-keyboard/recipe.yaml b/recipes/ros-noetic-teleop-twist-keyboard/recipe.yaml new file mode 100644 index 000000000..12ed0579a --- /dev/null +++ b/recipes/ros-noetic-teleop-twist-keyboard/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-teleop-twist-keyboard + version: 1.0.0 +source: + git_url: https://github.com/ros-gbp/teleop_twist_keyboard-release.git + git_rev: release/noetic/teleop_twist_keyboard/1.0.0-1 + folder: ros-noetic-teleop-twist-keyboard/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..c1dbc63b1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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/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..821d278de --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..b148f22ce --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..ada5fbe22 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..97de2e176 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..39850bb98 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..c79df67bd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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/patch/ros-noetic-tf2-py.osx.patch b/recipes/ros-noetic-tf2-py/patch/ros-noetic-tf2-py.osx.patch new file mode 100644 index 000000000..6143e8563 --- /dev/null +++ b/recipes/ros-noetic-tf2-py/patch/ros-noetic-tf2-py.osx.patch @@ -0,0 +1,27 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bb53f9d3..53f56f01 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -88,8 +88,9 @@ catkin_package( + + # Dynamic linking with tf worked OK, except for exception propagation, which failed in the unit test. + # so build with the objects directly instead. +- +-link_libraries(${PYTHON_LIBRARIES}) ++if(NOT APPLE) ++ link_libraries(${PYTHON_LIBRARIES}) ++endif() + add_library(tf2_py src/tf2_py.cpp) + target_link_libraries(tf2_py ${catkin_LIBRARIES}) + add_dependencies(tf2_py ${catkin_EXPORTED_TARGETS}) +@@ -101,6 +102,10 @@ else() + set_target_properties(tf2_py PROPERTIES COMPILE_FLAGS "-g -Wno-missing-field-initializers") + set_target_properties(tf2_py PROPERTIES OUTPUT_NAME tf2 PREFIX "_" SUFFIX ".so") + endif() ++if(APPLE) ++ set_target_properties(tf2_py PROPERTIES ++ LINK_FLAGS "-undefined dynamic_lookup") ++endif() + set_target_properties(tf2_py PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION} + LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION} diff --git a/recipes/ros-noetic-tf2-py/recipe.yaml b/recipes/ros-noetic-tf2-py/recipe.yaml new file mode 100644 index 000000000..c54b11982 --- /dev/null +++ b/recipes/ros-noetic-tf2-py/recipe.yaml @@ -0,0 +1,56 @@ +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 + patches: + - patch/ros-noetic-tf2-py.osx.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c7c148b6e --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..363797cfd --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..eabb85f86 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ce1dbbb50 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..dde64bcc6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..195d3a3b9 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c1a30ee1f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..21cd03998 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..be2ce0eaa --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..39d7c8030 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..2f5aa308b --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..223bfe0e3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..b28361e76 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4f0a4ea9f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c259e25c3 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-gazebo/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-gazebo/build_catkin.sh b/recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-gazebo/recipe.yaml b/recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml new file mode 100644 index 000000000..be86bea7a --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-gazebo/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-turtlebot3-gazebo + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_gazebo/1.3.2-2 + folder: ros-noetic-turtlebot3-gazebo/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - gazebo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros + - 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-description + - 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..554c577d1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ae7704a2f --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-simulations/bld_catkin.bat b/recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-simulations/build_catkin.sh b/recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-simulations/recipe.yaml b/recipes/ros-noetic-turtlebot3-simulations/recipe.yaml new file mode 100644 index 000000000..c4f6d8264 --- /dev/null +++ b/recipes/ros-noetic-turtlebot3-simulations/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-turtlebot3-simulations + version: 1.3.2 +source: + git_url: https://github.com/ROBOTIS-GIT-release/turtlebot3_simulations-release.git + git_rev: release/noetic/turtlebot3_simulations/1.3.2-2 + folder: ros-noetic-turtlebot3-simulations/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-fake + - ros-noetic-turtlebot3-gazebo + - 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..6443e9a61 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3e32fbaa1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..fce6b4493 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8a117dde6 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-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..40666548c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..b037e4a21 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f3e084be1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d45822aa5 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d4f904c4c --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..05f81febb --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..23a1f2f69 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..da7871fff --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..87f8f0640 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..963cb8d51 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..c061c9561 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..e6eed0cb1 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..4cf46ae95 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d04b81ae7 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..951cef452 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..49064bf79 --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..621365dea --- /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: 8 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..60cc741ce --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,150 @@ +ros_distro: noetic +mutex_package: ros-distro-mutex 0.5 noetic + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 8 + +# 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: + # - rviz + - eigenpy + - hpp-fcl + - pinocchio + +packages_remove_from_deps: + - stage-ros + - stage + + # sbcl is not available for osx-arm64 + # - roslisp + +skip_existing: + # - https://conda.anaconda.org/robostack/ + - https://conda.anaconda.org/robostack-staging/ + # - /Users/fischert/mambaforge/envs/devenv/conda-bld + +# 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: + ## + # TODO OSX-ARM64 + ## + - rospack + - microstrain-inertial-driver + - microstrain-inertial-msgs + - octomap-ros + - ackermann-msgs + - fake-localization + - realsense2-description + + - rviz + - python-qt-binding + - qt-gui-cpp + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - rviz_visual_tools + - rgbd-launch + + - plotjuggler + - plotjuggler_ros + + - sick-tim + - python-qt-binding + - qt-gui + - rqt-gui + - rqt-gui-py + - rqt-gui-cpp + - qt-gui-cpp + - rqt-ez-publisher + - pcl-ros + - pcl-conversions + - roslisp + # - qt-gui-cpp # needs manual build + # - rviz # needs manual build + - desktop + - perception + - moveit + # - eigenpy # needs manual build + - turtlebot3 + - turtlebot3-simulations + - desktop-full + - realsense2_camera + - realsense2_description + - 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 + - gps-common + - rosbridge_suite + - sound-play + - pid + - teleop-twist-keyboard + - laser-proc + - rosserial-arduino + - rosserial-client + - navigation + - ros-controllers + + # # # For jackal + # - gazebo-dev + # - hector-gazebo-plugins + # - gazebo-ros + # - gazebo-ros-control + # - gazebo-plugins + # - lms1xx + # - controller-manager + # - interactive_marker_twist_server + # - diff-drive-controller + # - joint-state-controller + # - joy + # - robot-localization + # - teleop-twist-joy + # - twist-mux + # - pointgrey-camera-description + # - nmea-msgs + # - geometry-msgs + # - nmea-navsat-driver + # - rosserial-server + # - imu-filter-madgwick + # - rosserial-python + # - gmapping + # - velodyne-description + # - velodyne-simulator + # - effort-controllers + # - velocity-controllers + # - teb-local-planner + # - slam-toolbox + # - turtlebot3-teleop + # - move-base + +patch_dir: patch diff --git a/vinca_e69231e952.json b/vinca_e69231e952.json new file mode 100644 index 000000000..57746cd39 --- /dev/null +++ b/vinca_e69231e952.json @@ -0,0 +1 @@ +{"packages":{"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py39h9036ba5_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=13.0.1","numpy >=1.19.5,<2.0a0","python 3.9.*","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h9036ba5_1","timestamp":1670449566754,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d48e0636c826f64d6e8dcdc8e75eebc4","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":67773,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ded3414a88611950fbc6e1e6b63b5c9eb2d709e5cfec4611cc3ce6a71521f648"},"ros-humble-rosbag2-storage-mcap-testdata-0.6.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807806448,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"736cbcb9465d69c8f1372be7a785c872","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":70058,"version":"0.6.0","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62f9f9c49c0a9a6d98cd70070eacb24f53af675f07565521a82bc90d765f6a67"},"ros-humble-rosbag2-storage-mcap-testdata-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675735844590,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c2531da886e6f947d54ae04f9e4d78ab","name":"ros-humble-rosbag2-storage-mcap-testdata","requires":[],"size":70565,"version":"0.15.4","binstar":{"package_id":"639106e8ead2dcc8c2056177","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bc1120212d221f02a771037ae7f77d7f66b4991576fd6ae38fc0001fa8cda76"},"ros-humble-mcap-vendor-0.6.0-py39hb4831bc_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=13.0.1","python 3.9.*","python_abi 3.9.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39hb4831bc_1","timestamp":1670449757557,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d122d3d41935524b84e66d927c54e562","name":"ros-humble-mcap-vendor","requires":[],"size":235164,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1b94f6170bf55113dfe6d9fc9870987aa0f85f5db770a5c7fa6eea88431f75e"},"ros-humble-mcap-vendor-0.6.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670543481500,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"37552ef2885b0debfdfeda9d6c6c4508","name":"ros-humble-mcap-vendor","requires":[],"size":234294,"version":"0.6.0","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a0ae370562eb36b01ffa4d2fdc01d81a6efcc913c4bf1387a80b8a5e1ccc0b6"},"ros-humble-mcap-vendor-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675641543319,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2d8fc4a709611014565dfc7cd76b4f25","name":"ros-humble-mcap-vendor","requires":[],"size":223496,"version":"0.15.4","binstar":{"package_id":"639106ea6a03c9fad27174c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8af9e2243a655fca6eec5d6178a99078ab8606ce3dd5e6e9dbd23849650424fa"},"ros-humble-nav2-collision-monitor-1.1.3-py39hb4831bc_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=13.0.1","python 3.9.*","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":"py39hb4831bc_1","timestamp":1670449258880,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e140d7b9499b53059bbd71b7b62b5dcd","name":"ros-humble-nav2-collision-monitor","requires":[],"size":279777,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa7e2c810356c969edb8ed8980364575f3e0e82a4ac3a4b4ae4404ea068de61b"},"ros-humble-nav2-collision-monitor-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840098267,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"afe45e48c0943642694599b814d1de4a","name":"ros-humble-nav2-collision-monitor","requires":[],"size":282688,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e49a4be915143a79637ad44692a396a3589c4b2cb44847bbb42a43f59b952c9c"},"ros-humble-nav2-collision-monitor-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847198490,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb5a8e18463afe9b8a9d0dda3c0b0216","name":"ros-humble-nav2-collision-monitor","requires":[],"size":281647,"version":"1.1.5","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"994b353a4099bfc6abdc6ab39c44d42ae35314827f82d5003ddaa5cb77865ea1"},"ros-humble-tl-expected-1.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670805216205,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a3e40a8bfd528f19cd2034a35de81384","name":"ros-humble-tl-expected","requires":[],"size":21680,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56232c44b8630e79dadc6e0f5fb0be68b895a9a69406f00327ef4de339355d7a"},"ros-humble-tl-expected-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640877138,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"044e5e46d42e3c42e294ccaf2828380f","name":"ros-humble-tl-expected","requires":[],"size":21990,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f80ae17b1479b08534219429cc30f13e7788f6227bb3ea768461eab8240f294"},"ros-humble-ros-gz-bridge-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670823383485,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f6d2139611dbdbbf57808047e39aee2","name":"ros-humble-ros-gz-bridge","requires":[],"size":1971563,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"103107e4e583bdbb5b9515459e42150e9cc519a79cc9fcb81af10792194cc2ac"},"ros-humble-ros-gz-bridge-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756320574,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6d04c29c449bae92b9dc846daf290aa","name":"ros-humble-ros-gz-bridge","requires":[],"size":1948370,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71ab0161bf71430a257fbbb55217d982daafe0c3a0d8e5ca436befd37639fb6a"},"ros-humble-sdformat-urdf-1.0.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libsdformat12 >=12.6.0,<13.0a0","python 3.10.*","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":"py310hd751b12_2","timestamp":1670560316802,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5d7353dc501e6c1345e9e674d3d3f43b","name":"ros-humble-sdformat-urdf","requires":[],"size":83159,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb8a53f1e69cfd9e5b3ef0a8dad20ccddb319e8e0ab46a62a88b8a5d0700b2d3"},"ros-humble-sdformat-urdf-1.0.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libsdformat12 >=12.6.0,<13.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675734473641,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b949dfff0b2a5b39f60b82140fdcbfd3","name":"ros-humble-sdformat-urdf","requires":[],"size":86483,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c6c0f146e072c65158fb7913cb368597cfabb0455d8fb2228313a4836da1a01"},"ros-humble-ament-cmake-clang-format-0.12.4-py39hb4831bc_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=13.0.1","python 3.9.*","python_abi 3.9.*","ros-humble-ament-clang-format","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39hb4831bc_1","timestamp":1670449365329,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eac736df944c4ea6eca277738b7ce5ff","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":10655,"version":"0.12.4","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09601ab7cd2bad15bab1cdba04316695de093a62c15822f98089b5e9cb178ceb"},"ros-humble-ament-cmake-clang-format-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544626536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2bcac9ad1028b35355694853f524df14","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":10654,"version":"0.12.4","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f29ef4f6b55d317c629c452eecfe09983b24b79ceaa8dac897f3ea999cb5f2f"},"ros-humble-ament-cmake-clang-format-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642446495,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"438aff8ed6a654890b2a6b56143f1c28","name":"ros-humble-ament-cmake-clang-format","requires":[],"size":12259,"version":"0.12.5","binstar":{"package_id":"639107746a03c9fad271c706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d4ee14fe4c4fd48b10d846ca522dec1558b238c2bcf1196c9eb0c1b0548aa58"},"ros-humble-octomap-1.9.8-h0f4a31f_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["octomap 1.9.*"],"build":"h0f4a31f_2","timestamp":1670535489885,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1fa8ce26784b29a0dece7e18cd6b95fb","name":"ros-humble-octomap","requires":[],"size":2952,"version":"1.9.8","binstar":{"package_id":"639258fd2dd70620554cbdaa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a68a75173f1df29e0a9570533d12bd06af210f4a228b61343ccf537749ec841"},"ros-humble-ament-cmake-core-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","cmake","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-package","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670535838981,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ac7c20766f9413a3e705365a2e567672","name":"ros-humble-ament-cmake-core","requires":[],"size":30666,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"723f67985a47c0b79c0dd9b9936f3b322e12fbcbfa51d1a37cb9964e5924a326"},"ros-humble-ament-cmake-core-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ament-package","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675631327982,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"828274ed57a91758f6a97abd961b93ae","name":"ros-humble-ament-cmake-core","requires":[],"size":32156,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2ce4a9108628b73392591abe3409ca703404d152440209162c3a058ddf40411"},"ros-humble-ament-package-0.14.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","importlib_resources","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","setuptools"],"build":"py310hd751b12_2","timestamp":1670535785062,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"40553209f24171680091300111bab1ff","name":"ros-humble-ament-package","requires":[],"size":31918,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e8e8a1923b99994199d3b4b7d040c4a9b47c0f54718311442ece339e0addade"},"ros-humble-ament-package-0.14.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","importlib_resources","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","setuptools"],"build":"py310h927cc32_3","timestamp":1675631226577,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"66a67a135aadc6eb670c79df7c472b92","name":"ros-humble-ament-package","requires":[],"size":27477,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ec75241b828b8132956659f8e84f45b960b247adf6351d567e6f784d32295fb"},"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":"arm64","platform":"osx","depends":[],"build":"humble","timestamp":1670535479122,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8898939848e45334b4c069e0a40424bb","name":"ros2-distro-mutex","requires":[],"size":3423,"version":"0.2.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a42fe83162e3f7ef9b839aff1134572d09339873107ec641ffe46cdd018fd67"},"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":"arm64","platform":"osx","depends":[],"build":"humble","timestamp":1675631069515,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5bdb8f182b40aa6448d77864ec16eef5","name":"ros2-distro-mutex","requires":[],"size":3635,"version":"0.3.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34bfb3e676bdfe22fd682ed19ee8a9f03953483d07a211f4d37cdd4bb2aeb30d"},"ros-humble-ros-workspace-1.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1671188985941,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0b56ceb979de4d14473be84eba3c7304","name":"ros-humble-ros-workspace","requires":[],"size":22679,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e30454dee80ea8ba90893fc130e4abc2983770bfe8f8a039b15908ce27c9fb95"},"ros-humble-ros-workspace-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675631912192,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"09e9fab934e62d76972aa602b0429102","name":"ros-humble-ros-workspace","requires":[],"size":23499,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e31d71913b4bffecd456ee6dcc340a07b7dc259ba7cede75afde70ba66522146"},"ros-humble-ros-environment-3.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536330184,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8d06237491ff27db17747884c2844996","name":"ros-humble-ros-environment","requires":[],"size":9693,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68a9a140dc81e3d88dcb9330b015dcab202a0e7fdde54d4f54818a089366f2ae"},"ros-humble-ros-environment-3.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675632002158,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f3363d70548ff5d755425b8b30996a0d","name":"ros-humble-ros-environment","requires":[],"size":11094,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae8e8dc2b34d147ebf1bdbfb057c8aa0be0be6da03c3804a09e3abdd2137945e"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537633548,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3b00bfc91cb8fe17c57f38d6212b1bb5","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":12385,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a3cc987462b6e477f5dec288f1fca45446edd44318012c16cf48863f30e63fe"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634576707,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5e3bd22d5078ed760ed75c9e2b780481","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":13879,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff8ddf06d5011fd7defff303869e6a47603271bf699e901c18e6f362ca65a614"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537780423,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"809cc5503f0e80e6ccd18cee9927ea9d","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":10315,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d5724dfd291c327fc58f18b2d661e4576973a99dd9ce51420f8a1f61a5bc8cf"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634756412,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb492c586ca86971b834da63a39ecf66","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":11761,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"adf948ce76d953e2b152eb5886d768d5921cd85f73259ae580ed14f094130fc1"},"ros-humble-ament-cmake-version-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537703223,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"101f35d361b01b7b0b05ad3f6cd640bb","name":"ros-humble-ament-cmake-version","requires":[],"size":10106,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e6322b3867f561cbdf81f9db8db2f3d8e061ec2c3d65c98974a66d7517f1108"},"ros-humble-ament-cmake-version-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634664067,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"01417c8a70923848fb26ba3b86635b47","name":"ros-humble-ament-cmake-version","requires":[],"size":11623,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a4ba4e9528a9270353f599859a4b7cc1c3b9dba6ab215caa347d1cb54ff1511"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537956737,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5b351b36557e0dc72708b44878e47e40","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":10360,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"964eb0d67914b9e81e73fe0616c786515f54562851f9e8c071aeaad9f351861b"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634936918,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8452a95fdd6295de7280d900df585ff1","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":11848,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ba8f47b484f747d2f6ef2cc60e71a48e2c16e0fcd5462bbb07db5eabb0f6128"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537862860,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"92a1964527c739dd302b6e25ec35a35c","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":10752,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9eb814ae297bfc03e270e2ebf612d5214563cf64080b3afbf90e9762819ad33d"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634841143,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2d90a86dde379f427b4002302458b1d5","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":12177,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec3f7f6b488cd4d38632b1f69aa41629cde7e68cf41301a73f97fa01a80d065b"},"ros-humble-osrf-pycommon-2.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536895773,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6642cd81a6f4d127b10b983d98bce42","name":"ros-humble-osrf-pycommon","requires":[],"size":48419,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4aa5dfdef0c1822b09b267484be6ee022b1b8068bba1c758a753c59299822517"},"ros-humble-osrf-pycommon-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634706036,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f5610c1a79cba443cf083c4db51fba7f","name":"ros-humble-osrf-pycommon","requires":[],"size":44946,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1e5627a66011de9f9a5c77d735bc31d930bfedfc58f15d97eb6f5c83b94a3b1"},"ros-humble-iceoryx-hoofs-2.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537353940,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cfd85d077aa70ce68fe92db9954300e3","name":"ros-humble-iceoryx-hoofs","requires":[],"size":255276,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3fec080ba9f75bb21009f2b3605786792d7facb266cdc70bb5d6f61916247db"},"ros-humble-iceoryx-hoofs-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675635433981,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fd45733f8a0ab66315c3182fb6d8634c","name":"ros-humble-iceoryx-hoofs","requires":[],"size":256033,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"daad07193fbcf50875b6e906d3b59d99451226474ea8704c3f8cf9f56aad6ce1"},"ros-humble-google-benchmark-vendor-0.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["benchmark","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536959822,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9211ef860c304888abf040645f962f0f","name":"ros-humble-google-benchmark-vendor","requires":[],"size":6955,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"702ac36c7f733b632bf4713a05c9642073cd632db788a972f9db36379b8a1cd1"},"ros-humble-google-benchmark-vendor-0.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["benchmark","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634789784,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b6841aadac5b8537a5d7187b6db8dfa","name":"ros-humble-google-benchmark-vendor","requires":[],"size":8416,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5889f918bd0750737d21191e23084423bfff1d28c1ea4633adac98e8c44fce24"},"ros-humble-ruckig-0.6.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537544036,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7c3d12a5d1cb71dd2a4d58df934df81","name":"ros-humble-ruckig","requires":[],"size":64946,"version":"0.6.3","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75d3ac6fed2bfd80f77670836c81f96105fe2983e4f268a4666947ad6cf38bd9"},"ros-humble-ruckig-0.9.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675635656933,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"89e7bc713cc8c65a190cc8b9ef9fdc2c","name":"ros-humble-ruckig","requires":[],"size":67734,"version":"0.9.2","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58f8c20e56cfe3ff0a77b0057fe0a16ebfc2c2f94e16d5a14355f68ef8dd3513"},"ros-humble-ament-pycodestyle-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pycodestyle","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536778522,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c27b6eed69ef98e85d81a7cb1589418f","name":"ros-humble-ament-pycodestyle","requires":[],"size":11935,"version":"0.12.4","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57791e550721a44ea03428774c518aa361e847204e893f922df480b0700d9f61"},"ros-humble-ament-pycodestyle-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pycodestyle","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634543976,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9969129053466f3ac3da603946d2f837","name":"ros-humble-ament-pycodestyle","requires":[],"size":12923,"version":"0.12.5","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"232d2e5b4822d166c78fe84c8509ae0be772e4d4a06ce75ec4489ef24fb2db99"},"ros-humble-test-interface-files-0.9.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537151544,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ede6ad703ad79dcd12eb174b8586d4f5","name":"ros-humble-test-interface-files","requires":[],"size":12289,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31fbe6b5cd7fdff682b7b24f52ae535e5b0607794367e1ddfa47638f18159dfc"},"ros-humble-test-interface-files-0.9.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675635187897,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7831d33b2b9c632e963547246f9d4fa5","name":"ros-humble-test-interface-files","requires":[],"size":13714,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d22add0cf9b391af1b25f9f9686ca9b447fac83b934a4259fad227b4ecee46a3"},"ros-humble-ament-cppcheck-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["cppcheck","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536834792,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4dcc57905dad66440bc258b954cebbda","name":"ros-humble-ament-cppcheck","requires":[],"size":15268,"version":"0.12.4","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5c5b8f51ee1e20feb188ac150b7d926a79fabf541dfd90260bbc5463f1dba00"},"ros-humble-ament-cppcheck-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["cppcheck","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634622803,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8195dc4ca094ef046e109846948c7738","name":"ros-humble-ament-cppcheck","requires":[],"size":16167,"version":"0.12.5","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26afb45244c0741cca2ce563318fb013af099b8ac861e1aae50783f8d9faa7cf"},"ros-humble-urdfdom-headers-1.0.6-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537416245,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9b7d14d70d288eb50918843a10ad669c","name":"ros-humble-urdfdom-headers","requires":[],"size":18874,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2e0a03c02ae469a723b2a554e9a3531a746ee5a80f581da6ee6ef72eb4bc03c"},"ros-humble-urdfdom-headers-1.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675635506069,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"af814a41a3fa4638eb69b80a94d95091","name":"ros-humble-urdfdom-headers","requires":[],"size":20469,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a33df31d99b3d94cb9235bff5c7816f4d824045adab49acd171881c77a1d0769"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537097610,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1e630a1e82ffd0ec5482691208e8e5d1","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4316847,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ec0e59c47a518bd2d22c52e91b12317a4081b96d118d76d119253f17e5adfd7"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634938940,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b534e3b7d59469ee3558cfb8c2072fb","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4316757,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"889402fb906a788484c66dd62235da8289d7bd9de9699898c5a75ae2ccbb68aa"},"ros-humble-fastcdr-1.0.24-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537235251,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"da36595f88f1822715730f5fa0675ac3","name":"ros-humble-fastcdr","requires":[],"size":52391,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8cc6513aee5c8a0798cd74ef8c42ed09db5e1adc8c0372bff9f1b57adfcb7aa"},"ros-humble-fastcdr-1.0.24-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675635292710,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"335c4380cfdd09075cc4e27b8c86d311","name":"ros-humble-fastcdr","requires":[],"size":54071,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3bd42be072db7a9447d876a8d91dcd7812cf7148f24ad6e7c693d39e0acf3cc"},"ros-humble-ament-lint-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536835627,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a42ab3107f0081256313fe781e035615","name":"ros-humble-ament-lint","requires":[],"size":7390,"version":"0.12.4","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12b978da39a524aba90ecfc38e0618b0c7844ddf6b65703b31a4b1548c6073ce"},"ros-humble-ament-lint-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634537977,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4ca6f87634c6432fca9cdf285775ce61","name":"ros-humble-ament-lint","requires":[],"size":8057,"version":"0.12.5","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6032b52bf8d422e8bbb28f41ad54ffe1aa6a6f3ca5c4cf9c1311f1aecaf41d0"},"ros-humble-ament-cmake-libraries-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537043605,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"349931ece9aba48f32667d00bfde48a0","name":"ros-humble-ament-cmake-libraries","requires":[],"size":10598,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"372ba8d833054215a5f5da9db6967f6a8766d063e98b72d89b971b6e484afcde"},"ros-humble-ament-cmake-libraries-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634793932,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"132a5150c4f0bfb6c568452eb1380f27","name":"ros-humble-ament-cmake-libraries","requires":[],"size":12121,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"982288a8027eade5d4fd8890cb9924b784e9ffa1aee35c512a1f119450c45c09"},"ros-humble-ament-cmake-python-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536909542,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cb964e2e8f548e1b5a227b7c4d4dd2ad","name":"ros-humble-ament-cmake-python","requires":[],"size":12534,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2060b6aebee2f338ebf9d2ec10ea88a71e166f4c592ed89fa9d7329eb98c45d"},"ros-humble-ament-cmake-python-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634625297,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"69a2f02a439a04fe7224856f05001100","name":"ros-humble-ament-cmake-python","requires":[],"size":14024,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb7f5fa2bf5381d239bcf8b9695c44566e30a636349aa4aed1cc84b7baf3e4cd"},"ros-humble-ament-cmake-include-directories-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670537124608,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4585eba0c750766ea6e3d4b82dc9ad99","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":10239,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"635a6dc6eb80f9a522201fe29ae44232edc32aa9ee9b81468f86de237199e07c"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675634881971,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6e9c4a3667e1c2cbfcd3db796a5d248","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":11764,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db7ab2023988df57d1107e8f9615763897f33878b67b0c713dacd8ed062b3683"},"ros-humble-gtest-vendor-1.10.9004-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670536976967,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"edf232e089c55bb8393df088ad6d4b92","name":"ros-humble-gtest-vendor","requires":[],"size":176001,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"377007abf0f90576389df301e3eadf6d64d330c08e1002fc2c26054ec80bf664"},"ros-humble-gtest-vendor-1.10.9004-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675634707046,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8d8b38541bc81f82b726d549936b040d","name":"ros-humble-gtest-vendor","requires":[],"size":177822,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5613b44890be6c058ee62740641a4a70ca8317f54afe2b43d52b82432a2f30ce"},"ros-humble-ompl-1.5.2-py310h38d66af_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann","libcxx >=14.0.6","ompl >=1.5.2,<1.6.0a0","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h38d66af_2","timestamp":1670538242665,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"98f57f80115cc474b5698e198f48fc36","name":"ros-humble-ompl","requires":[],"size":21841,"version":"1.5.2","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd1389f97ff21d37a01fb89731158328952cd0c322c797aaaa11d7c4683851fe"},"ros-humble-ompl-1.6.0-py310h67011d7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h67011d7_3","timestamp":1675636507814,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"daa341369b60bc8f348084aeab9b6aaf","name":"ros-humble-ompl","requires":[],"size":1973311,"version":"1.6.0","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f063acad588697926656d769e513c1ba03a3332443bddf8de16bfd4a360cb581"},"ros-humble-sdformat-test-files-1.0.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cmake","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670538340615,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f90c6feed5dfd1dc395c2cf915b48418","name":"ros-humble-sdformat-test-files","requires":[],"size":101123,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43dcb5e01dab66254eaa9309a349cd7e5217fc47a3d6cac9ed18bf8626103000"},"ros-humble-sdformat-test-files-1.0.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675636628478,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"015891ec94300cbb8dbf49a57a851550","name":"ros-humble-sdformat-test-files","requires":[],"size":102864,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0bf04eeee0128b63d48bff5ec7c7d8aeba48f52461cb2bb7159cfd87ca3c7bf4"},"ros-humble-ament-cmake-test-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670538752465,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"31d5b5260c7f327f4aabc0c344b51acc","name":"ros-humble-ament-cmake-test","requires":[],"size":20692,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"530bd7a20519c8f58816f82c06ac4b11e386d0cf3684a7500584632767d92e45"},"ros-humble-ament-cmake-test-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637059560,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"47de9d292aa24b81d3b31a6479b09cfe","name":"ros-humble-ament-cmake-test","requires":[],"size":22207,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82fc5be4b51d76c23d35ef6ea7243e645f858892bbbe08e6000bd3777a0a0e3b"},"ros-humble-ament-cmake-export-targets-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670538920065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a2b716b1327652b411c721ada9575ea0","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":10779,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce3b0867b459b63d4eafb2b92ded9b707f9d5667594bbeff15ef74a2a15f8f4c"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637252096,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"16849da7d854d1e1ad6a3edc990b30b9","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":12290,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfc5c56edc1bfeff8a9ad4c781bce7fbb305e48e166928b92b16a31f9bbb3ec8"},"ros-humble-ament-flake8-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["flake8","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670538675625,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6dbf451560ff94d94e4bb78b04dac895","name":"ros-humble-ament-flake8","requires":[],"size":14679,"version":"0.12.4","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8b6754ee9f5af2401db58e0e8b74e01125be5269335917c1027c83b31c7b590"},"ros-humble-ament-flake8-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["flake8","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675636959749,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"076b7804ca516f140c5a4ceb5a2b1355","name":"ros-humble-ament-flake8","requires":[],"size":15654,"version":"0.12.5","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95abcb17f989f9dd4768724f9e4c8ded2077315090431fe2452a21c1b742087f"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670539008703,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f8460606d003e37aa485eae60cce33f","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":10858,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c654d338d0cfced48604feedee62af80a03fa70240eb93d005e2443270812da2"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637340447,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8fc21fc423f299455500da077cd488ef","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":12365,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6755a3cbcf644b78af9ad637ad132ecf50973ec5407d1e92e81e72c08d68e63"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670538835295,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6e00cf50261169c4ef35fec5a5e10da7","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":11755,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ea8092fc25974091c8194544d97ca2d2f2756dbd923465cd5145dc2ec1c9431"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637150859,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a05924d966ac9e45b640dc9fae8b67c5","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":13224,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e0082fa22271dfcf335af165b5d8fa48c8ac658110f18eac286140f1e42fc50"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670538813754,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"818289f6471ef88f3c95887d1639709a","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":11139,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39892f1d3404861e6eaf58b556d0f6e07e416c420f34996d7286f96330e05126"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637075307,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7de542a3b03fdb4da3c8224a8feb950b","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":12633,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b39228cdba90d3782ec09fb998dfe88b20a056a07163f415628ee92fbfc27811"},"ros-humble-iceoryx-posh-2.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670539084402,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5f18d65daca30c77006d4b7f25007f9e","name":"ros-humble-iceoryx-posh","requires":[],"size":434794,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d98fbf6d300e95bb63241f0bbec89476a11b591a0f770d28f72cb750179f6625"},"ros-humble-iceoryx-posh-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637515240,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"556287f361d37b4d0ea9abd988842afb","name":"ros-humble-iceoryx-posh","requires":[],"size":446585,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7faff14964e1200da00e6279cb8be6f5aeedf1c0806a2d2005a4bd228e5b7f63"},"ros-humble-gmock-vendor-1.10.9004-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670538868533,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2c449dc6524469b751639f634cd41dc6","name":"ros-humble-gmock-vendor","requires":[],"size":98199,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f32fc5f94bf0afaaf9ae80c685eff77ab4b34eb8d7c808035ac11a690c444ce2"},"ros-humble-gmock-vendor-1.10.9004-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637184416,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c6ad00e6e923de41b79d08a14af554be","name":"ros-humble-gmock-vendor","requires":[],"size":99683,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d50befad22db55e539e070b077f4338bd15cdc131af5f887a3f80f759af5a7a9"},"ros-humble-ament-lint-auto-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670539935536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"448c5c885d4d9fca41e552f2f24647b6","name":"ros-humble-ament-lint-auto","requires":[],"size":10289,"version":"0.12.4","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afb7143ca45d8beade285174f519c195660f4e1cdcf908ddbc0ffa9844f355b4"},"ros-humble-ament-lint-auto-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638032588,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"db6d94aa4b6595ba15b7fec9ca83ca5d","name":"ros-humble-ament-lint-auto","requires":[],"size":11768,"version":"0.12.5","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caf09f0a390ad35cf6364eaff4c7a7f645e8f14cee1dec5cc16701828c004a64"},"ros-humble-ament-pep257-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pydocstyle","python 3.10.*","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670539822914,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c1be1e9f5f62b5b52517f27f18c33cc2","name":"ros-humble-ament-pep257","requires":[],"size":13710,"version":"0.12.4","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"784e21840a96c5a36f87bb1c4f4b041308a6f7667994fb4b7a1aba393a0a9ad9"},"ros-humble-ament-pep257-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pydocstyle","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637847363,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4bf1fea36d38bc6677881261c5775707","name":"ros-humble-ament-pep257","requires":[],"size":14670,"version":"0.12.5","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c426dd4592428b58c4816fb2aa0faad063c04cf42db178ca8838b5878883e21"},"ros-humble-ament-cmake-pytest-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pytest","python 3.10.*","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":"py310hd751b12_2","timestamp":1670540069375,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6acc047e8046946664b8938e47700606","name":"ros-humble-ament-cmake-pytest","requires":[],"size":12162,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27fa367c75f2d21a7b24cae04f9d49414160f14caf94eb5408742f5e28bbdb16"},"ros-humble-ament-cmake-pytest-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pytest","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638226139,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c603f94c0c46d816573fe5f0e04ffb40","name":"ros-humble-ament-cmake-pytest","requires":[],"size":13732,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"080de504ba04f294321547cbc4960f4863312b2f6ae0aaa5005d7d4d8d6cc1dc"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670540002465,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"49d8deff0e72f9524a1d29d6771b256c","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":18418,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"887a7861d9711cf3d4d0d0bcacf87427622ae946bc74dc51279f5ca08dac6661"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638131932,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"07be7403ab0a6bd4c5ac734520d686e6","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":20033,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17e20713071e7423dc9210153be018102ebb1f6d30110d8245aa63e17f66a987"},"ros-humble-ament-cmake-gtest-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gtest","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670539880208,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f0f07d9847812750da9afc23b722e57","name":"ros-humble-ament-cmake-gtest","requires":[],"size":12770,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2d58bdde7cabc470c5c02283339c8c217d3b3c315b50b192158e23901617066"},"ros-humble-ament-cmake-gtest-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gtest","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675637943001,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"82b00008247aad26ae230da90edf8ed7","name":"ros-humble-ament-cmake-gtest","requires":[],"size":14300,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"091d035689cae937fbf24ee9f5560e519a2885955e306d49ebfe4dcc9baf01ce"},"ros-humble-iceoryx-binding-c-2.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670539847117,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"027ebac4b000fecec8cb2b37c668ad8e","name":"ros-humble-iceoryx-binding-c","requires":[],"size":75434,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c572e945d1e420fd4b45007bc9539344ac4adfc6b1a0d5c1f3cdbd88f3c0456"},"ros-humble-iceoryx-binding-c-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675637869736,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"336288872c6e57a52fbce998422116e6","name":"ros-humble-iceoryx-binding-c","requires":[],"size":77156,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3228aab16ba62f55547f5d2ad682a7a68cd4b5725b1b588b8607b6f8cf27d17a"},"ros-humble-ament-mypy-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","mypy","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670539926338,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74b13a9d9c1e09c22e55b88f842a0565","name":"ros-humble-ament-mypy","requires":[],"size":13410,"version":"0.12.4","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b43cac70ff87a86412a4b02510ee2e730ee21851f1f902094b261562d7877e00"},"ros-humble-ament-mypy-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","mypy","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675637968476,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a88cfc9c326a4bb9109692218c3592a1","name":"ros-humble-ament-mypy","requires":[],"size":14496,"version":"0.12.5","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55bcdc7cb4a6671e13ab63ecef657bfb6f8e38064033a0903a6279a97cab7725"},"ros-humble-cyclonedds-0.9.1-py310h1d02d79_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","openssl >=1.1.1s,<1.1.2a","python 3.10.*","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":"py310h1d02d79_2","timestamp":1670540865472,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1015766b43f35ffd1bbe4dec409b3885","name":"ros-humble-cyclonedds","requires":[],"size":796870,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c481d30add020bb6ff12c1fa2a953312429695d16b26ba6e9746ac5c30c940fd"},"ros-humble-cyclonedds-0.9.1-py310h1bd489d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.10.* *_cpython","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":"py310h1bd489d_3","timestamp":1675859668927,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d1358c1674ee87be7aa71555ed4b9b93","name":"ros-humble-cyclonedds","requires":[],"size":806782,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3aed27560d08cf66c55dd1acb75f5ac282006e4f63806f8fdfa57a38331254b"},"ros-humble-ament-cmake-gmock-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gmock","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670540710855,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e309e84835cee87121d4e93592cb1409","name":"ros-humble-ament-cmake-gmock","requires":[],"size":12158,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75f2a9f55ec2e26638da6f53fd29b15636bed0504302f8386a0b9b1a1c748faa"},"ros-humble-ament-cmake-gmock-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gmock","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638758134,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aa2b38615e54b3d308af932aff504d10","name":"ros-humble-ament-cmake-gmock","requires":[],"size":13689,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03bb0d2c19c60b9e729e27f4b14a153fb0518de3abd2adc0530004412b796564"},"ros-humble-ament-copyright-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670540557053,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9a4abfc49be5f0a1452983b103fb1e90","name":"ros-humble-ament-copyright","requires":[],"size":46991,"version":"0.12.4","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c49224fc262b6b220002fdfbde1b183877cf627692136f69939a54af538bb838"},"ros-humble-ament-copyright-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638550949,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39f7bca34defe80f759bfcc2850aecf7","name":"ros-humble-ament-copyright","requires":[],"size":46168,"version":"0.12.5","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3266ba806561bb32efe300e8f099ff9872995e1dcc22ec484feb3c51c7b8ce3"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670540643755,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7f39f7d53177f53e5f596c1c84830859","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":12716,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f91656557cbea09dd6e162d702bb082ff9001e1606a17e7ed7c4e45f00a0080f"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675638661767,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"26ab82c2a7323c59feeb4fb873779fe5","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":14235,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac0616e6998fec4b786de9edbebe9099d3977b4f75e18267ad73eae32e794365"},"ros-humble-domain-coordinator-0.10.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541226877,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0a2f9b4f80d16e8bb2f68ed5aa64e433","name":"ros-humble-domain-coordinator","requires":[],"size":8915,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3835fad43f374cad627ca09e620a31e541b865ab86202acfb1c0cef8cdd6ee0"},"ros-humble-domain-coordinator-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675639618522,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f721e4c67c1f331feb1a12d08089278","name":"ros-humble-domain-coordinator","requires":[],"size":9703,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"557d313633208407642a8fc98f338622f5da0edeee4d1de33165b83e1e3bdf11"},"ros-humble-ament-clang-format-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["clang-format","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541293892,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ac337b303f8f3b7f7f0ba72f133a776c","name":"ros-humble-ament-clang-format","requires":[],"size":15559,"version":"0.12.4","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f83018916aa48a1a730071af5be76d6348ac0934926e1010751e3c2d42cec710"},"ros-humble-ament-clang-format-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["clang-format","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675639836924,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3b110c47cfac70c1deec0d6a6bdf8585","name":"ros-humble-ament-clang-format","requires":[],"size":16791,"version":"0.12.5","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b082831d82f8de336f199676f3919e93835d673f258632e2999ef2651d3cfa2"},"ros-humble-generate-parameter-library-py-0.3.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["jinja2","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","typeguard"],"build":"py310h927cc32_2","timestamp":1670805436536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"df34bf7f6416ed4d29664be1b8207694","name":"ros-humble-generate-parameter-library-py","requires":[],"size":28597,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2474812f376c3cc72d00d4c1ca44cb85e530370a6b21af3ee59d0ff9fac9724b"},"ros-humble-generate-parameter-library-py-0.3.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["jinja2","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","typeguard"],"build":"py310h927cc32_3","timestamp":1675639719374,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d49b3a30a9d258e530632364439e934b","name":"ros-humble-generate-parameter-library-py","requires":[],"size":27896,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00a8c3de83f242c112d7879355a52519fea72960a68aeae946ccfb298250d459"},"ros-humble-ament-cpplint-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541758692,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b4349e303d88d24200b3014c216af5d9","name":"ros-humble-ament-cpplint","requires":[],"size":118555,"version":"0.12.4","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7be819f0d4b223bb76661c908db7805f4a664fcd682173b5d9b08f93528386fb"},"ros-humble-ament-cpplint-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675639933996,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"60d56cc687a366986d9df9ba7825eed4","name":"ros-humble-ament-cpplint","requires":[],"size":119683,"version":"0.12.5","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37bee72ec289ce91290ee0e1371bf9443e995eed89bd6386715429d4bbe1f59c"},"ros-humble-ament-xmllint-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libxml2","python 3.10.*","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541671332,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6cae09732c8515c90e993e221799842d","name":"ros-humble-ament-xmllint","requires":[],"size":14094,"version":"0.12.4","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"578f07d608273e8101ee81e7401ce1236cc6cec443753b1160f8fc9dab3ae6df"},"ros-humble-ament-xmllint-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libxml2","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675639835045,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9d98ef7a116647d0291952572cfe977c","name":"ros-humble-ament-xmllint","requires":[],"size":15092,"version":"0.12.5","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5167aa1c290ba710e28859a6b21da3cc594e4a07ab0ac107eaaeee51a0691566"},"ros-humble-ament-cmake-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["cmake","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670541580934,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"010a6228119888631103bd4925d21f14","name":"ros-humble-ament-cmake","requires":[],"size":10286,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c22ddcd3ae94f04eb21368c60d7bd708ef438fe573f67f9735b2ddcbcce36eac"},"ros-humble-ament-cmake-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["cmake","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675639727580,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2649cb41b692e3e575d5bf8eb6f29886","name":"ros-humble-ament-cmake","requires":[],"size":11810,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ce8efc5d2499722280d0f0774fcff37013131f913b8b221f1ef081465aff177"},"ros-humble-ament-index-python-1.4.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541840281,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5690d92aea4ece1837896a57b5d799b5","name":"ros-humble-ament-index-python","requires":[],"size":15425,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e1bb8a013ccc048434b0146e4ccfb0bc6e796f0f6709848e1b351f169f18dc9"},"ros-humble-ament-index-python-1.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640036384,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f396ba5570de6be98df681ece8e3891c","name":"ros-humble-ament-index-python","requires":[],"size":16089,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3a8c3ebd2e3ea7f9a419b2e7c07638a028b523bc9c346c005f6ccab1422fa86"},"ros-humble-ament-lint-cmake-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670541500977,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4466d48cc358a46d2f5d995fe750c5b9","name":"ros-humble-ament-lint-cmake","requires":[],"size":22377,"version":"0.12.4","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73d7383770be9552c68734180de9629d53662f258f599a1e675bd72455e7ccf2"},"ros-humble-ament-lint-cmake-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675639609429,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9a6b1bf742e82ddd6acb5d8677a43635","name":"ros-humble-ament-lint-cmake","requires":[],"size":23346,"version":"0.12.5","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88fb47f6313162db07e009c3c56a046b3654cae11d2a37f90efed5870b7660f9"},"ros-humble-tinyxml-vendor-0.8.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310hd751b12_2","timestamp":1670542784823,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7d8be33736e0a28ffc6fb978f52c2d5f","name":"ros-humble-tinyxml-vendor","requires":[],"size":10503,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74afe558fc41e627a8910a8ec9e2bfdc0b1b65aedb5619e65d55aece7b5281a6"},"ros-humble-tinyxml-vendor-0.8.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h927cc32_3","timestamp":1675640452010,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4b38bd60bcfdfeb257b50a3273cf344c","name":"ros-humble-tinyxml-vendor","requires":[],"size":12034,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da4ae386e80001bfb00dc9ac51844270324d0810f3925a0a8e5ad993ac08e69b"},"ros-humble-eigen-stl-containers-1.0.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542445089,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ea9e53fa6a340d053887e0f7ebc7621b","name":"ros-humble-eigen-stl-containers","requires":[],"size":11295,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4bd056ae69c18d575a3cb0fb5496430d80775fa430340adfe40f1079ba5d879c"},"ros-humble-eigen-stl-containers-1.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640694909,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c176c3a5750012c50d7da14091d845a","name":"ros-humble-eigen-stl-containers","requires":[],"size":12823,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ecb54b0efcb0bc059b94545d2903d4738a3f52261b9d950290f829f6fe3df16"},"ros-humble-shared-queues-vendor-0.15.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542502966,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"18d9d275d140bc17e3fcdd360a5745ef","name":"ros-humble-shared-queues-vendor","requires":[],"size":51003,"version":"0.15.3","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0727207835020ef3b9db6e2a67cc7393487ed4dca64edd5f3cc578b5e50bcb4c"},"ros-humble-shared-queues-vendor-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640792501,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8c3a2f2a06c4d171e7bc1600ebbeb9d5","name":"ros-humble-shared-queues-vendor","requires":[],"size":52704,"version":"0.15.4","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"766309b945b4781d38e06e8feffb384753219122e61192e7ee7c922c2b9a1ba5"},"ros-humble-pybind11-vendor-2.4.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pybind11","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542725381,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c2d80b199fe490880f3963a3bdc8e0d8","name":"ros-humble-pybind11-vendor","requires":[],"size":9130,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca90d35d917dcd13d4a3edb5e46c715608e39e57ea1e98a7958fa820242503ec"},"ros-humble-pybind11-vendor-2.4.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pybind11","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640356700,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"12627d1a83ac4d1275014580e8de2ac4","name":"ros-humble-pybind11-vendor","requires":[],"size":10700,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f6da1a6546cc0b92152a9c0b191df44118859701fc5c18eb1ef9705f0fa7faa"},"ros-humble-yaml-cpp-vendor-8.0.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542888735,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3a1d697e6688c09af100e920b31be1c6","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":9395,"version":"8.0.1","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"955735611a8d0743bfa5807b08ce9e65529a071b6bdb6e906eb4641b2f59f982"},"ros-humble-yaml-cpp-vendor-8.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640641715,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9ea72a57911cbfad36e98fbf718637bc","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":10893,"version":"8.0.2","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c580acd58ac2f9a1da7ab3c27ed27d90b5da94ffed22312d109acde8cc54ad8"},"ros-humble-libcurl-vendor-3.1.0-py310h135148d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcurl >=7.86.0,<8.0a0","libcxx >=14.0.6","pkg-config","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h135148d_2","timestamp":1670542947955,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9f33e5bfed683bcdedaaa7c0f533f01f","name":"ros-humble-libcurl-vendor","requires":[],"size":9922,"version":"3.1.0","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"269f27b049147f22b8e792728c3ea53ce00b9d56fa79631aa7c54b0c2bb2145d"},"ros-humble-libcurl-vendor-3.1.1-py310h667bcb1_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcurl >=7.87.0,<8.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pkg-config","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h667bcb1_3","timestamp":1675640758951,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"18fe82a927d3cdca25c4639971cec76e","name":"ros-humble-libcurl-vendor","requires":[],"size":11503,"version":"3.1.1","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5319c7714119f92bf2d24773f67a6387a771018a5bc25a985efb32c1d6aeafe6"},"ros-humble-tinyxml2-vendor-0.7.5-py310hb0861aa_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hb0861aa_2","timestamp":1670542836350,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"89262787355c36e3faf064355cf0d919","name":"ros-humble-tinyxml2-vendor","requires":[],"size":10669,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b852061c58a8218fdfa1efebfbcb4bf675dfd5d9403e43922023a30d45c56961"},"ros-humble-tinyxml2-vendor-0.7.5-py310hb6d62d9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hb6d62d9_3","timestamp":1675640545857,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a65f34a40a225c4db7010662ff89d847","name":"ros-humble-tinyxml2-vendor","requires":[],"size":12187,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be4e355e49e1725fdb4ba382ef12badca247bbee3534dfc14af58a5a646c4164"},"ros-humble-random-numbers-2.0.1-py310h8b02db2_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h8b02db2_2","timestamp":1670542385130,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6576f92400655cd64b503ea1a4673c08","name":"ros-humble-random-numbers","requires":[],"size":30387,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbaa0d4a76ba9263305dbfc8d7c81074c48ae9dd33338412e9a94d2f45234c6b"},"ros-humble-random-numbers-2.0.1-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hec30da9_3","timestamp":1675640596705,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"acb1c5f7a312d145aaa9db3554b4c6ae","name":"ros-humble-random-numbers","requires":[],"size":32048,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a629a9d9d4ddfc32bdba2671c8b5448aed81fb60e8bdaaef47685963400ebe0"},"ros-humble-tcb-span-1.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670805286527,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83097be56db788a4f5a6ebc36245a08b","name":"ros-humble-tcb-span","requires":[],"size":15634,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed7503d1561ae51bb73b06f04268847be265028dc011bac3bd41bb0eb8e5a541"},"ros-humble-tcb-span-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640963167,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3ad9c2474c3d55dd2485bdac9498954d","name":"ros-humble-tcb-span","requires":[],"size":15959,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aea1f12941066a219a22db5b2e302c77d5b59c4ede428acea5126cc43c582238"},"ros-humble-backward-ros-1.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542479065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0abda18e931a406bf2feb90c34a0b507","name":"ros-humble-backward-ros","requires":[],"size":67268,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9ced5b34b4437a5548342d4abaaa151a1e94f68f209287f90d4e2a02959e77b"},"ros-humble-backward-ros-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640783479,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc89fc77a1f333e2de7401c63efe83f4","name":"ros-humble-backward-ros","requires":[],"size":68940,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c0eb0335287b484503957f530eb3834a43bfa2f8b40269aaa7bd96ccf3bc5f4"},"ros-humble-moveit-resources-panda-description-2.0.6-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542368449,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ffc72ad5bc3876e09dfb64f4d024f913","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3798263,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51149f1525ad9209b37beb6bd5923b7169ba8e8ba7690d17dbdb36290dce243b"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640649621,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b33508d211c209f32b36c23d831cff83","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3805925,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30666f80b9fbf0856def7a15ded90b7ad5c21af0fef5a7a2a9f910f37c412ba2"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542623242,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8c5b5538c5e5945b42bb2c8cf86a7218","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25838508,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fd5a4deab806fa4ecf59b13208da0d8f76cd2b6bd811edc58b107e93eb2cdbc"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640942965,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9b421326d7a0f6e45e06974cf5c8ea52","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25915458,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bec7dd8f8626fddcb21a6a24dc676bb79bb619c03f309c30a33a252204797120"},"ros-humble-sqlite3-vendor-0.15.3-py310h4c2ae0b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libsqlite >=3.40.0,<4.0a0","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sqlite"],"build":"py310h4c2ae0b_2","timestamp":1670542182292,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aa75dcc287f8ebc3c1caf1a40c1228ac","name":"ros-humble-sqlite3-vendor","requires":[],"size":10670,"version":"0.15.3","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f19d323ca2c2d13737c586ceca72f49fa001be3e5508feaf2faad6b58a66ddf9"},"ros-humble-sqlite3-vendor-0.15.4-py310hb40b5b5_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libsqlite >=3.40.0,<4.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sqlite"],"build":"py310hb40b5b5_3","timestamp":1675640363882,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"844a580737cc9bd74e00ab7eae927ea0","name":"ros-humble-sqlite3-vendor","requires":[],"size":12196,"version":"0.15.4","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a74bcdbe60514a1599c74dac9af67187a7fde85d74ed7bed8e5e2bdad4b31195"},"ros-humble-zstd-vendor-0.15.3-py310h0ee586c_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310h0ee586c_2","timestamp":1670542353578,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bb7005acb0eeccf25044887ff4ee4c8f","name":"ros-humble-zstd-vendor","requires":[],"size":10010,"version":"0.15.3","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cb6ae1ff0110e74f8d1607a2fe20dda1b5c46f6581818ecdff85a889645951e"},"ros-humble-zstd-vendor-0.15.4-py310h4be5160_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h4be5160_3","timestamp":1675641051344,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e056cfad7ec10a9e62022c2c2d0e96ba","name":"ros-humble-zstd-vendor","requires":[],"size":11552,"version":"0.15.4","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19e0c8cf2add634e6567423883dfe07fc3df8523c0ae904b2855ea1ea5d08e72"},"ros-humble-angles-1.15.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542562890,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"45fa61973a8e63fe30a428cda7dab45f","name":"ros-humble-angles","requires":[],"size":19065,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b24a7cc8edd52fec14d4048b3fc5a080f2055910e40e87f8b40d3f47e5567a08"},"ros-humble-angles-1.15.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640841640,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"98f0b019d0e5ad3bdecb8c3eca0daa24","name":"ros-humble-angles","requires":[],"size":20848,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1481e68e9b4d30e30c0368d05356b777eb7fbed86e03dce9be1c4f6ffb3b06b1"},"ros-humble-xacro-2.0.8-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542305207,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"235e91d052e55ba3244bff9fdb65d2d9","name":"ros-humble-xacro","requires":[],"size":48277,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0121240e55a53b59809c8b19ee4ba37b35b83c9ff77086505907e625fd564f90"},"ros-humble-xacro-2.0.8-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640557457,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c4a9e98b90d698c651eb32d0955ef760","name":"ros-humble-xacro","requires":[],"size":49984,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71835a50eb894e35c0f9160e79f00d1571dc648ef8c66facfa5c474d5c43b23d"},"ros-humble-ament-cmake-auto-1.3.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542242856,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"36efa3958f6bbdb1fb940baedaaa1f35","name":"ros-humble-ament-cmake-auto","requires":[],"size":13260,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40ced55058858992886d6189803f46da146256da1c0cbbcb724468e72cdf6a6a"},"ros-humble-ament-cmake-auto-1.3.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640454860,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cd0d60397cc5fab4462a471ed1f4584a","name":"ros-humble-ament-cmake-auto","requires":[],"size":14922,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a69f232462c6af5dcd2e1d2c0710e663215d84ba34d38144a33874430d7969dc"},"ros-humble-ros2-control-test-assets-2.18.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670805362033,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d6d39a73a4b68c066b142db48e1573b4","name":"ros-humble-ros2-control-test-assets","requires":[],"size":14926,"version":"2.18.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f787fb69cb6d9052562d8f8e4b8dc27ad9bb8f60bf9e2954af96c57f901b0570"},"ros-humble-ros2-control-test-assets-2.22.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640750317,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9424eecdbd87f3ca3b0a8185647a029","name":"ros-humble-ros2-control-test-assets","requires":[],"size":15230,"version":"2.22.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a0d6555616a9b36cdd5504ae985d08935ceca3c937f446b51d1e3f41904dfc7"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542415442,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c09f90590bd1e3b37ee9559f1f01b638","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":185549,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56074aa187e090f089587263f8de923f97e3c388f70bb65b6fce95a321f6c1d2"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675641141086,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"803f275833fa270780598d70a9bf86d9","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":186848,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b05ccd298b0bd071d944cc7dd7e44304d71a4985748d65dcb48ea7be3d2fb48"},"ros-humble-ament-cmake-lint-cmake-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542248785,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8c33e2e30628e9f100af17bee93d7c7b","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":10474,"version":"0.12.4","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41cb0c0f4b994754490cd485219ff62d24373a0bf86e0194dcf6f819341b5107"},"ros-humble-ament-cmake-lint-cmake-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640362970,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f765fe5da7350c45589786ff49abff3b","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":11999,"version":"0.12.5","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c458beb5d9adaa80f558d72d8f4ab0178a44fb6d8414cfae34ea7de05e0b702d"},"ros-humble-rosidl-cli-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["argcomplete","importlib-metadata","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542514044,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fa48004ae765b5ce6481ddd4257aacba","name":"ros-humble-rosidl-cli","requires":[],"size":23597,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cca29eec967e7952c3785aeae3a9c1b111a798e1ce509c92784a754d541c912"},"ros-humble-rosidl-cli-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["argcomplete","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640721927,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"79762a44c96d5b53eaa23a8bff1948bd","name":"ros-humble-rosidl-cli","requires":[],"size":24156,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d37dcd70545b3c8d456e7d854180466f43080f703934c1a057cdea81973df4c9"},"ros-humble-uncrustify-vendor-2.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542392130,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a2548b2ed2149fbeec10c859a40d4f67","name":"ros-humble-uncrustify-vendor","requires":[],"size":9268,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8befa516bfac5d62d3366f92750a0fb4e77a94180f5d7e3063ff7da9bf9bc690"},"ros-humble-uncrustify-vendor-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640548417,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b5c47d80e31644c154ddf874c58c8db2","name":"ros-humble-uncrustify-vendor","requires":[],"size":10805,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74d4c95cbf6fffc15ee656819bac7dc3df1a9ebc84f8944914362736c9c3a2fd"},"ros-humble-rpyutils-0.2.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670542580981,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"73f8c912d74c1ffd9a6b7db028828bdc","name":"ros-humble-rpyutils","requires":[],"size":13510,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1dceea4f7fcc36f4c866fab5723326c2b1014d2bbac73e6451368658dc1c02a9"},"ros-humble-rpyutils-0.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675640802698,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cbe5078978287fcdd0b1c05ad8742bc9","name":"ros-humble-rpyutils","requires":[],"size":10798,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da8b0a942c21a55f59bc71fbd24f84fdf6c1ad9c64c23be979662feabb56862d"},"ros-humble-launch-1.0.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","lark-parser","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670542452556,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2abd36858507d585b5f8390f014bad9b","name":"ros-humble-launch","requires":[],"size":148215,"version":"1.0.3","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"104ed38c99490ea3b9413bfa1b7bd453f29ddefe7078327fcca7d3edaac3022a"},"ros-humble-launch-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","lark-parser","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675640631166,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9a5e6e30f46a38a0f856865a093ec14","name":"ros-humble-launch","requires":[],"size":143014,"version":"1.0.4","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fd12f52df69e300bc5a47e6c585a40e444c400d59a2d4e2c302e2d3fc0955eb"},"ros-humble-gazebo-dev-3.7.0-py310hee6c4eb_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gazebo >=11.12.0,<12.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hee6c4eb_3","timestamp":1677541743201,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6d27f41bb9f2e9606b919882d9e8723d","name":"ros-humble-gazebo-dev","requires":[],"size":14115,"version":"3.7.0","binstar":{"package_id":"639266cb54e9ace854c377fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7aab47c44e79dcd9a03942dd9976ef8d86b798f9e684fed99538a83cdad8bc27"},"ros-humble-dynamixel-sdk-3.7.60-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678331520837,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99bb106dd9ff0ae0d93d73e6d4380a9b","name":"ros-humble-dynamixel-sdk","requires":[],"size":48882,"version":"3.7.60","binstar":{"package_id":"639266cce6a2f79ab8292707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12598d69d63ae47ffe5646738ab5599f8987451bf745a3c6ce83d8a45fa8f9c4"},"ros-humble-sdl2-vendor-3.1.0-py310h1019ea0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310h1019ea0_2","timestamp":1670542477458,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"656c2d95c76e6702ca97a17a527af625","name":"ros-humble-sdl2-vendor","requires":[],"size":9726,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a139293d03e43f245bbf5ea9fee834cdda99919255986f1e8083ff4dff8f66c8"},"ros-humble-sdl2-vendor-3.1.0-py310hf36b8cc_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hf36b8cc_3","timestamp":1675640429957,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99801b3f0420723f3764332fdf634150","name":"ros-humble-sdl2-vendor","requires":[],"size":11278,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c21851214976d63f58e0ad67e55b96b435b6cdf9eb105f9189ddf47084ded69"},"ros-humble-ament-cmake-copyright-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670543688214,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ff3117af4c9c6bb6d89de81af818dbd0","name":"ros-humble-ament-cmake-copyright","requires":[],"size":10487,"version":"0.12.4","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11822daf8e56577b5e7b7a537f488ceca1bf9535bd341470879a2c70de8a5324"},"ros-humble-ament-cmake-copyright-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675641465585,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"82e1249eb127f4a37c25a82f9be4925e","name":"ros-humble-ament-cmake-copyright","requires":[],"size":12025,"version":"0.12.5","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a10e1491bcb0bdeac1ffbe2192fc58521a6f045228e23d002e9482d0e04dc7d3"},"ros-humble-ament-uncrustify-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670543838468,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"746561d12ed958f024eac786452ba67c","name":"ros-humble-ament-uncrustify","requires":[],"size":33956,"version":"0.12.4","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6697f544cee2f7fb0bd23ff4fe1e54680d37bfc45f08d111089c01bdcacb3435"},"ros-humble-ament-uncrustify-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675641553361,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5e3fb406c73bea2bde1b294680ddd93e","name":"ros-humble-ament-uncrustify","requires":[],"size":35072,"version":"0.12.5","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcc67f55a5f5f94987e2b9675144b2fc60d4f82d71dfe11336a716ec864d63bb"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670544085389,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9a35e9a7ff962063af38a0b8e5db29bf","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1079039,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1314be60e07f6cc14b77e25a47108c4841f331b4e5b952021c902a6fc0bee925"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675641811076,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"33279096da0cba5902c0ac5b32bbe7ad","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1082663,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3afede5031325a46c167bbf10001a70bbcc65f1b3168677b3f9101ad5d36d0c1"},"ros-humble-launch-yaml-1.0.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670543935474,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2c14d1a330313146e7123884df8b3883","name":"ros-humble-launch-yaml","requires":[],"size":13137,"version":"1.0.3","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b86e3a0cd1d82db98dc1d48057f66b1351bba09555a5714e5d77a36748b9fc5c"},"ros-humble-launch-yaml-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675641636091,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cde1006e2936b75a4252eb264bfd4a31","name":"ros-humble-launch-yaml","requires":[],"size":13779,"version":"1.0.4","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9a1c76aa3fd23bc626dd9c651d74be6a2d81afc587aa3f96d332c291f55aefc"},"ros-humble-launch-xml-1.0.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670544006915,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"19a1903590a187b78ccfe1f675d3601f","name":"ros-humble-launch-xml","requires":[],"size":12825,"version":"1.0.3","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6915883c0fbd7588ddcc19827e514aae6ae7949d7f98cdab973844802fe7e8bd"},"ros-humble-launch-xml-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675641711601,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"166e112e016f19b0b0cfab691923e1a6","name":"ros-humble-launch-xml","requires":[],"size":13443,"version":"1.0.4","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbad2b4ea10898971d8365a24b92992d5e3ab052d7c1396983babf04d3406233"},"ros-humble-ament-cmake-cpplint-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544731882,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8c4bb175821fefe21a8c24d9c4cabb9a","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":10836,"version":"0.12.4","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e0703014c7f32ea79c7277cb1b43dd276d8cd9da8bde9eb17163b90b536eef2"},"ros-humble-ament-cmake-cpplint-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642515923,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"be9122cb533b8f692ea0def48d9895de","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":12344,"version":"0.12.5","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0aed8f64a64d05a8a4916dc569dc997f7587344e578404895a46a5b9fbc99ac"},"ros-humble-ament-cmake-pep257-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544626545,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"759910dc2f6b396950bfa15f937b85f1","name":"ros-humble-ament-cmake-pep257","requires":[],"size":10434,"version":"0.12.4","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1170e4ca7a544a0aa7ed22c0877992affc37ed098b600d4486e386743b813c7"},"ros-humble-ament-cmake-pep257-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642328208,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e2b162b7bb345ba1a794756c3eaf457e","name":"ros-humble-ament-cmake-pep257","requires":[],"size":12008,"version":"0.12.5","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfd5e4a7db2c2d11341077d2a5a52048524e828d78f49b9348e876c63084644c"},"ros-humble-ament-cmake-uncrustify-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544573315,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"feeca11510bc7d6fba03fd752910c6db","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":10861,"version":"0.12.4","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8541a421cb097c619fcd6a0551e637c96020f40cdf4908b49dae31ec5f61f86"},"ros-humble-ament-cmake-uncrustify-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642232498,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"65c2bde3aeec105474200ca10b9e31d1","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":12419,"version":"0.12.5","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7ae98b58ee78a56acad5aa2f649753983764e14107e305b695bb042f40ca8cd"},"ros-humble-ament-cmake-xmllint-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544522053,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"acaea74870f882c442b52653dd584659","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":10514,"version":"0.12.4","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7966d561b44eab47a07514b766cfedc27d4a2d2567dbed74e28863c1426bf05a"},"ros-humble-ament-cmake-xmllint-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642137548,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c3758aa89a8382902ebafde2c82d3ae","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":12084,"version":"0.12.5","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74da348ba61608448aa0956a66acdc59594317402592117615b9af5ef9814797"},"ros-humble-ament-cmake-flake8-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544680472,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ba932d82d178305eabc94b196218519a","name":"ros-humble-ament-cmake-flake8","requires":[],"size":10694,"version":"0.12.4","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab372ba6d4c0042a084b8c6071ccf457943f014dc8097aaf0cbce484abda5519"},"ros-humble-ament-cmake-flake8-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642417613,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ca7e68bcb683932a6a8c5d4de85861dd","name":"ros-humble-ament-cmake-flake8","requires":[],"size":12266,"version":"0.12.5","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f67ac7e511f4f60a1395d552cbfb95e20adbaebb100a272e5b31debd23509d8"},"ros-humble-eigen3-cmake-module-0.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670544551457,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"63e31360a79f838f2beb32b85abf8c0d","name":"ros-humble-eigen3-cmake-module","requires":[],"size":9963,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06b3c1736ae5da6cfdf52f3c852d91e84befe63b9a2c8cd039d1f8acfd4a96b8"},"ros-humble-eigen3-cmake-module-0.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675642342426,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6c5c94cddfeacbfd6190a090c12c065","name":"ros-humble-eigen3-cmake-module","requires":[],"size":11487,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0decbde26e5ba2c6661b55d06ae7f231439a4fe951e74adf13a62f22841e2700"},"ros-humble-ament-cmake-cppcheck-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544403693,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e751c97e124f56ddeb81f206a30af25d","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":11479,"version":"0.12.4","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14268a1fb823029eddcdc9e6789d0f51d5082f66e9da7042b6dbce4a55ef4738"},"ros-humble-ament-cmake-cppcheck-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642147660,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ec4bf9a4a8a30c94cf48c14b9b5f0ca9","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":13039,"version":"0.12.5","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d76d275521b7475886d2cec2ce27ac12ef489792b57c441c2ab4d7ef1ceb1999"},"ros-humble-launch-testing-1.0.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pytest","python 3.10.*","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":"py310hd751b12_2","timestamp":1670544479011,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2de9dcf8827fba7d5d23ed4959d4dd51","name":"ros-humble-launch-testing","requires":[],"size":74542,"version":"1.0.3","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b701f29735f1a84e2e02e1a8dfaf1f1d8481fe898b5f6230f597819b9c843312"},"ros-humble-launch-testing-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pytest","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675642236277,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b3de6084eac140556c1127d8edf5bd10","name":"ros-humble-launch-testing","requires":[],"size":73293,"version":"1.0.4","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d574070cef6dc76101b3cf8c3ec6f5f1b6ccab499a489de755fab1092960025"},"ros-humble-ament-lint-common-0.12.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670545206724,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0686f3738e59b24d92a3f893aa8736cb","name":"ros-humble-ament-lint-common","requires":[],"size":10239,"version":"0.12.4","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce7c1f3c33326fe4bfc241b2f85a546f93f5c30791a3883f7d76ae7737b2a654"},"ros-humble-ament-lint-common-0.12.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675720522586,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"904aa1f20b8de686cb0be3855cab9eda","name":"ros-humble-ament-lint-common","requires":[],"size":11956,"version":"0.12.5","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00b6104adce89cd7d1effd12dd2e09329830408a0008123edf8138279e688eae"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-cmake2 >=2.16.0,<3.0a0","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545524585,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c315b2434408ad37b26bf3d7f12a7b26","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":6463,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e953d61452b07d429c513a7c69fae48ccc05997965efc225f4a0f9efbb03db9"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-cmake2 >=2.16.0,<3.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675720855536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1e0e58004ae5aa5de74e5de4ae2fbf76","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":8132,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49e76edfa0e18ca941b73d86181ad3abcd1727709b9a22c6ccb10a159b21e50c"},"ros-humble-rviz-assimp-vendor-11.2.4-py310h7f2984b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7f2984b_2","timestamp":1670545437827,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"311949cd5f5dc6e1a8e6bab8e759290e","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":9980,"version":"11.2.4","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddb9b9669c37e5db680d17946f9d5c74dd186970eb816de7ca045bce9ac1fd60"},"ros-humble-rviz-assimp-vendor-11.2.5-py310h07a1639_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h07a1639_3","timestamp":1675720757641,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a888294c8e347bd19706bc67ab6fed26","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":11541,"version":"11.2.5","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47a93fa801ba89d939a436b41a617eaa94881a7268a4476831df6d3eb20f1790"},"ros-humble-foonathan-memory-vendor-1.2.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545270421,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"841313f6649cc5c5788232416eed356c","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":7405,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1704344f64f486f073f4b4327fc4ab0e786e72e58144031390b4b4add72bebdb"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675720617706,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6bad9eeafceb2d2fb3c1c2fbd233c23","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":9125,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f014b07b8cb77964729be16ba1d7897d01d0611ccb4bff9cfb1e2fe8e7e71011"},"ros-humble-rviz-ogre-vendor-11.2.4-py310h584c318_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp","freetype >=2.12.1,<3.0a0","libcxx >=14.0.6","ogre >=1.12.13,<1.13.0a0","python 3.10.*","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":"py310h584c318_2","timestamp":1670545355301,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"571822d8ffb4a96fc8ea25eef99e87da","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":12159,"version":"11.2.4","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f08672de28909abf6ac9172d5b36411ec382e2bde868cb432ada603c08148e9e"},"ros-humble-rviz-ogre-vendor-11.2.5-py310h57a32cc_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","freeimage >=3.18.0,<3.19.0a0","freetype >=2.12.1,<3.0a0","libcxx >=14.0.6","libzlib >=1.2.13,<1.3.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":"py310h57a32cc_3","timestamp":1675719078299,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90701dabb957c0293dcc3764d6c0a333","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":5055865,"version":"11.2.5","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4dddd1456926b4cf3a521cb0d3856cb5be4664fb0f3835a666758272b2899a4b"},"ros-humble-tango-icons-vendor-0.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545995503,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2ece65a344faad54cfe09deb16259548","name":"ros-humble-tango-icons-vendor","requires":[],"size":1015935,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d0deb15c570c63cf35a8b5fe57aec924630cbf94b05f8274e43dbbd290c746c"},"ros-humble-tango-icons-vendor-0.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721303664,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"16e97644d2f08cbbad4e35b58ddcc3ee","name":"ros-humble-tango-icons-vendor","requires":[],"size":1027269,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15b77d3e4ffdaf8020359a98f81dc8ffe1b38f9c5b3125a061d9f8920868e0af"},"ros-humble-ignition-math6-vendor-0.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-math6 >=6.13.0,<7.0a0","python 3.10.*","python_abi 3.10.*","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546153165,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"77be4d42c59279f2335b39dec8b72637","name":"ros-humble-ignition-math6-vendor","requires":[],"size":6487,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57252d5948fd77062e08525505ef83293eaffa904a35edded9c6a03b28926f8b"},"ros-humble-ignition-math6-vendor-0.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-math6 >=6.13.0,<7.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721553334,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6733eeaec159e338b0be0e1a813ffb29","name":"ros-humble-ignition-math6-vendor","requires":[],"size":8214,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa0284614db75f1b2a618439f0ab2dd641a533b4af18219fb2de97ab92de5979"},"ros-humble-moveit-common-2.5.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545928190,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b502e53c3b0a93424237bce09be1c350","name":"ros-humble-moveit-common","requires":[],"size":11015,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d931f41737e448d4b903700d7f1e36a010f4a10eb06d735b5da80b3c7a558e7b"},"ros-humble-moveit-common-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721198425,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"33f7cbb036e7b4375d00613703d72d23","name":"ros-humble-moveit-common","requires":[],"size":12770,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86fb1a7e6647a10ad4fd4be810644e00436f19ca497a862436c2ee9236ef37de"},"ros-humble-keyboard-handler-0.0.5-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546091599,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"396d941ec0d235598a4ecc259e2b1c0a","name":"ros-humble-keyboard-handler","requires":[],"size":42899,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4124e8476533c25cc12a3d7f574429ef37cf47334c015cb561dcde49a5ff43d"},"ros-humble-keyboard-handler-0.0.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721450653,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"57e2c917b837fac482e644b0667e23cd","name":"ros-humble-keyboard-handler","requires":[],"size":44899,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3fbc0c81595c8366963517188af33f8518a80cae9167f529eb0916c88c7a372"},"ros-humble-python-cmake-module-0.10.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545933028,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f1eaf15929af16c56d2557408a49e19d","name":"ros-humble-python-cmake-module","requires":[],"size":11360,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62997ad068d30090201f8ae3936f271c283dd1f302f82f5920de15506268be16"},"ros-humble-python-cmake-module-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721225704,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f015533e35fea0dd253358d3e228598","name":"ros-humble-python-cmake-module","requires":[],"size":13107,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f8553edbf417393a250cdb654c8ef8715a28f43536556bb4fd9181f35921d0d"},"ros-humble-performance-test-fixture-0.0.9-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670546019240,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0669d8e793e892ded114e340df05c69f","name":"ros-humble-performance-test-fixture","requires":[],"size":21164,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9185ac4a46a6bd7cc972440e4335cc4f61d2076a83f8fbde76c805c3db55cb9a"},"ros-humble-performance-test-fixture-0.0.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721362959,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"405a50deecc6e9cd1392f3de5203f74f","name":"ros-humble-performance-test-fixture","requires":[],"size":23090,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c75ce1fa91a898a2e515ea6e6f2d36d3b4a725151459a8d90b83bdf64579ec39"},"ros-humble-rosidl-adapter-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["empy","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670546204539,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4bcb79d1c275e2c27108f8d5eab50a92","name":"ros-humble-rosidl-adapter","requires":[],"size":36073,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ed66757841b17ff24197ea65b9d1c5ed710db6dbed5a7d80d67af6c242e9b90"},"ros-humble-rosidl-adapter-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["empy","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721673101,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"41b94883ff08e32607602214d77526e7","name":"ros-humble-rosidl-adapter","requires":[],"size":38211,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a8e16f175efe1fab392f42bda02f670b9275324dc87520fdd0c536412f3db0d"},"ros-humble-mimick-vendor-0.2.8-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546091557,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f43248aba40e71f7fdd2cf199236ebb","name":"ros-humble-mimick-vendor","requires":[],"size":38272,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92857662b359c03baee92eac731b2af7d402dc68c612c8d23d5e9ce8ce7d5a56"},"ros-humble-mimick-vendor-0.2.8-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721475648,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"107c810676cf3f618d3e2ffc0722a0fc","name":"ros-humble-mimick-vendor","requires":[],"size":40230,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c67198fdaea4f252f6e1513b46bac1e05b920d99c7713ca59bb15d1b003abe86"},"ros-humble-ament-cmake-ros-0.10.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670546147047,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e358c4cf913ef864782e8241ccbadbbd","name":"ros-humble-ament-cmake-ros","requires":[],"size":12618,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4aa9e7207aa44c63e346528340fed4dfbec274d9443ef8d1522a3272c237aa72"},"ros-humble-ament-cmake-ros-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721574825,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e0182ff3399dc8b901bd403976b4f96","name":"ros-humble-ament-cmake-ros","requires":[],"size":14605,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"940bbc5e2f48d870078aaad9271ee79a0a90273f5f5aab7798526128221763df"},"ros-humble-spdlog-vendor-1.3.0-py310hcf0c85d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hcf0c85d_2","timestamp":1670545977055,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6fe9eb299c90007f15cd4177efea106","name":"ros-humble-spdlog-vendor","requires":[],"size":9207,"version":"1.3.0","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b2f8678cd26d8d092c3a08620067a7caee6e465e2c78ec20a79a1e4ace6c16b"},"ros-humble-spdlog-vendor-1.3.1-py310he44a079_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310he44a079_3","timestamp":1675721543099,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e039b3f47c2d4b1d4ce921f8e3c1a56","name":"ros-humble-spdlog-vendor","requires":[],"size":10999,"version":"1.3.1","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce268ebf1184396f4556713c64eb7eb42c89a7827001980e9c07403e3fc393ef"},"ros-humble-python-qt-binding-1.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","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.*","ros2-distro-mutex 0.2.* humble"],"build":"py310hd751b12_2","timestamp":1670967930673,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"190de2734061563c38d5bd4289da473e","name":"ros-humble-python-qt-binding","requires":[],"size":34853,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbffcc8c50d35532eb2fdaa7c37d43ab42f8112812e65d8ad81b97ebdd682218"},"ros-humble-python-qt-binding-1.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721948360,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"70d5e52e4b45ea69b3cbdad394fc7f85","name":"ros-humble-python-qt-binding","requires":[],"size":27991,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed57ff9956d64a9d62b07a4b4563f6a08f0566ccac2bb1a0508ab700b6e85445"},"ros-humble-smclib-3.0.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546138484,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cc64407fac2684e2afe98816001d1382","name":"ros-humble-smclib","requires":[],"size":18967,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74b7947150180e350c75c6e24dbc30950385c39040949ef88ba42cb9d62af788"},"ros-humble-smclib-3.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721758982,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"94148830de0cb7370f121cebda24983e","name":"ros-humble-smclib","requires":[],"size":20760,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99e4992b2cec385d8d6ad39ab2875c81c7edf4e0d02f4236c36e23e088154475"},"ros-humble-orocos-kdl-vendor-0.2.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","orocos-kdl >=1.5.1,<1.6.0a0","python 3.10.*","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546068762,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"10b2e68a95279a423be1a117c96d3a21","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":9979,"version":"0.2.4","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3390c0f33a2a417aee470198f0c580ab4cf83d8e0c528497a5db1b5c28886dac"},"ros-humble-orocos-kdl-vendor-0.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675721646544,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9642c11ef605785ce7c83b1704e14e57","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":11762,"version":"0.2.5","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c4f456a8f94397cd42949d4365c32bc84f9131e0d202f04333cc8c65cca761e"},"ros-humble-ament-index-cpp-1.4.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545905390,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83f1b2b3de0e1704a6dff6d057e9d148","name":"ros-humble-ament-index-cpp","requires":[],"size":31060,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d3597a554be4b4d09652fe3effc856920a0f41254bf288193b5918910c2d369"},"ros-humble-ament-index-cpp-1.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721435171,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2a3b9649127f31cfcf498c4f552fb029","name":"ros-humble-ament-index-cpp","requires":[],"size":32960,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8e524b5a96d3a9cd0259a71565bc0406c730b141b67b1acb7606645665318f4"},"ros-humble-fastrtps-cmake-module-2.2.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546059407,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d4bf31df7c1c46ac06014a347396ec43","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":10351,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b553828a294e92979dabc9425a1b4517d4159b5280cd81b35ba41c21d52c31c"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721536590,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b5fbc71ce6d5456aa91942336e1d5ea","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":12074,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0df57a97c45035929a26f3ba2cecc2d14827908db782e1cb03e87a3bec434dd3"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670546994247,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3ebaea347aea99fa08e4fcf8b0bb71f3","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":14386,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57b0456fb4f6923c0965e341bdae56b9045b332753e52950440a31f874612569"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675722689630,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4283f4a4c37526640c5596180ceee338","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":16232,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dff76c1943c2f3951252aeb7c7a64097aa8da950ad1d4bc60aec85f454775a23"},"ros-humble-rmw-implementation-cmake-6.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547059834,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"97a9aa1c58f7374993c24e118eafb9bd","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":12227,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"418cc73ec1137cc0dae82781f578e2d213a80e8ef4c82d65850dbf492f873956"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675722814652,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1110efc055f7a6a19433e40e3b828e0a","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":14095,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e626ec0e8c4084acf00dc8f2dfbba666c909078c016a51804d391d657d772f9"},"ros-humble-fastrtps-2.6.3-py310h3e374a8_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","openssl >=1.1.1s,<1.1.2a","python 3.10.*","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":"py310h3e374a8_2","timestamp":1670546897577,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5efa5c4172917f9b9bed286ebb70d02c","name":"ros-humble-fastrtps","requires":[],"size":2596329,"version":"2.6.3","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"190252c980c03d45a42e1cc68fcbf9120463e798bb6645802611fa9ea073fca7"},"ros-humble-fastrtps-2.6.4-py310h824520d_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.10.* *_cpython","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":"py310h824520d_3","timestamp":1675859500096,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4faf0093879d40b61b63b61b904e54f1","name":"ros-humble-fastrtps","requires":[],"size":2602555,"version":"2.6.4","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b01b9d89c0663d80b4b2fd220bb75dbfa912351d616d0d9f401cf91f4a2edb3a"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670545988959,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5856a6266cc09c630fbc12ef70d2e077","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":11567,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92478fe43733ee4f669b81d439dac448924ff85e3cdcd485f2be1818378e89b3"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675721402222,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3b81b916ac878d22a74920e3af8a7cf8","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":13399,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d4eda1771728bb759d569cdc533a0d0062b47db05d96e05d2c9bff365851a4d"},"ros-humble-launch-testing-ament-cmake-1.0.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670547518014,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"155ab72c38fa472e9b52e7d245adafac","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":11703,"version":"1.0.3","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ce8d6087aae50190efe82c368625daa22fba124efdaac8e2d5ea85fc144f0bc"},"ros-humble-launch-testing-ament-cmake-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723155531,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"de8c535e5b8bbb95724320945a6bdce6","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":13504,"version":"1.0.4","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c15d66a80acbab9cfaf2b1d15815a6327fbe24691e62ef43303637e19fa44a0b"},"ros-humble-rosidl-parser-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["lark-parser","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547583356,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ac3dd2bd3398438ed4cc223cbcf99966","name":"ros-humble-rosidl-parser","requires":[],"size":34737,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a49d23c41d116815749f2667dc8880e9d67134d40b73ce431e5169d993a1a75"},"ros-humble-rosidl-parser-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["lark-parser","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723261712,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e752cc9389d2c7c2143426f78a863fd1","name":"ros-humble-rosidl-parser","requires":[],"size":36696,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c916b75b6c418740618bcba6918235913042badf32682650a2e5c53f13113937"},"ros-humble-urdf-parser-plugin-2.6.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547772253,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"786196deba77a87db1102e09198e75c1","name":"ros-humble-urdf-parser-plugin","requires":[],"size":12808,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1aa7ba87366558597f0abde46f399ea3495643bcf3d67d4f733e98c48e02a8fa"},"ros-humble-urdf-parser-plugin-2.6.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723601976,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1dee965b861932231457c012a807fb38","name":"ros-humble-urdf-parser-plugin","requires":[],"size":14792,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7867abce0b33e224f026e3cbbcb2fe51525c75fd4310289b6caf848a88738883"},"ros-humble-console-bridge-vendor-1.4.0-py310h648553b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h648553b_2","timestamp":1670547720497,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1bd32ae044ba333330321d5bbbbc37a1","name":"ros-humble-console-bridge-vendor","requires":[],"size":9316,"version":"1.4.0","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e26fef9f1d68450ec154a160c1cd0108b6fd09c4cb94ecd69d274bd707f7e686"},"ros-humble-console-bridge-vendor-1.4.1-py310h2eb544e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h2eb544e_3","timestamp":1675723508534,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a24ca37e3fe6f9b829ba5df2f9c18b4a","name":"ros-humble-console-bridge-vendor","requires":[],"size":11108,"version":"1.4.1","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df7004267a05dc8b2e35a6dd9181cac6ac815285a1040eaccc1632ced6917fcf"},"ros-humble-tracetools-4.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547666089,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a3323e4c536e4db610ec0536c31c3d7","name":"ros-humble-tracetools","requires":[],"size":20186,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"075e84bea598db432b2fe863885eb72613a1073598822bb7d47481f657729176"},"ros-humble-tracetools-4.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675723412934,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0c971dc6112d5c221875ac8560ce818","name":"ros-humble-tracetools","requires":[],"size":22253,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcea962129890251d74a55cb07763df86ef271964dbbf9295c079dec1d149eb5"},"ros-humble-qt-gui-py-common-2.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670547614174,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"253e8e2aa75bc3e8717c578029e708e6","name":"ros-humble-qt-gui-py-common","requires":[],"size":20155,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79b7b1dd748d9e5ea38382a40d8f6f3bc4397600e58ccabe8f2eabf96d5805c6"},"ros-humble-qt-gui-py-common-2.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723621425,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7c3d52b768521311b96849f98e9afd56","name":"ros-humble-qt-gui-py-common","requires":[],"size":22354,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6503761233676db9bc4a9778a607fa028c326aba23e7f9c36e662c27d15f6034"},"ros-humble-tracetools-image-pipeline-3.0.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547539811,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"32c6ed51cb3ee1b2fd7ac0baf970eaf1","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":16968,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef5a14f0931cde92b0dcb3c7b34d2a6c097ac4947a225f4ca380598d891b8f40"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675723527944,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"97c2dd81c1d654cad3ec01819c52abf8","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":19024,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6f74bb9ab90d3e3c20619aac7653c56b5b7eda02b57635adeba1d830d8925dd"},"ros-humble-qt-gui-2.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","pyqt >=5.15.7,<5.16.0a0","python 3.10.*","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":"py310hd751b12_2","timestamp":1670547456312,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ff1f8b691d969ec5997feafea111b6e4","name":"ros-humble-qt-gui","requires":[],"size":104883,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffeede5abddbba27277ec539759894ad35c9bef4ff0941e9cfc83f054334e39b"},"ros-humble-qt-gui-2.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723381779,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"daac96d3c2cf102f09e01e077960eef9","name":"ros-humble-qt-gui","requires":[],"size":107571,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a428654288d95df977d661778ad26e09d6ba067b3cf2b3d9578eb6a956eb7ca3"},"ros-humble-resource-retriever-3.1.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670547354395,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c690459b7bd17835ca50c68c39211b40","name":"ros-humble-resource-retriever","requires":[],"size":23650,"version":"3.1.0","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d269b06bb62477d7cfe8760f634820ee21e8ccc30a8b3fc07ef884dc8d2e894c"},"ros-humble-resource-retriever-3.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723222059,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e68b0af1c8de04a62da4e27a0d6a1ed8","name":"ros-humble-resource-retriever","requires":[],"size":25734,"version":"3.1.1","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"857d0f2e27e103bcdc57fd9f59fcfd5e4ca028835f632cccf8f9ef84e7f763a4"},"ros-humble-qt-dotgraph-2.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","pydot","python 3.10.*","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670547762103,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d9e844a19c7f338790e7ef28fe5545c3","name":"ros-humble-qt-dotgraph","requires":[],"size":29146,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"765de07232b86389b1f9d47144b7eacd81cc36af73e0d7e4ed0c9cf5f418f106"},"ros-humble-qt-dotgraph-2.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pydot","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675723743024,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0e2527f34d16617830e3796589774ac3","name":"ros-humble-qt-dotgraph","requires":[],"size":32039,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e3d7be718b745c243c81466fab2934fdf2f979005115a61699e662020ac919a"},"ros-humble-urdfdom-3.0.2-py310h648553b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python 3.10.*","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":"py310h648553b_2","timestamp":1670548381476,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"63259cb6e742a47cb2af71424dd5bb4f","name":"ros-humble-urdfdom","requires":[],"size":115761,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de88d0ac2d2c40492fca2ea5fc0a0d3bb376cf288ae93759d0aa8236e58296ca"},"ros-humble-urdfdom-3.0.2-py310h2eb544e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h2eb544e_3","timestamp":1675724605931,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"23355324a933bde4acd2a7d672c9ce41","name":"ros-humble-urdfdom","requires":[],"size":117525,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"103f6184bdcf54a56f50285cd753683567c7cb4c5a6394fd5562c615cb43815f"},"ros-humble-rcutils-5.1.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670548149099,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2000757f8529aa3d2abf234aac134366","name":"ros-humble-rcutils","requires":[],"size":85730,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1253e4818faaec0324ec64a469fe2d7e2471712f707874b674ba07a93a77f666"},"ros-humble-rcutils-5.1.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675724272091,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7f6185564190d7a11a92abb5396691b9","name":"ros-humble-rcutils","requires":[],"size":87842,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"045096ee53e23e3529ab4f1d5cb0ec2c9fd4d91294486c971c2b075d7d3828de"},"ros-humble-rviz-rendering-11.2.4-py310hf8c56e3_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","python 3.10.*","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":"py310hf8c56e3_2","timestamp":1670548679760,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2ff14d9fa121ce3056895291dcceeb99","name":"ros-humble-rviz-rendering","requires":[],"size":931682,"version":"11.2.4","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1ed3912d527c164322852212a9fe18cb4755a3f082f5d21a80fefa3d7ef800c"},"ros-humble-rviz-rendering-11.2.5-py310h2da077f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h2da077f_3","timestamp":1675725039313,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb4037851b162238b28430ac3e2c335f","name":"ros-humble-rviz-rendering","requires":[],"size":953680,"version":"11.2.5","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5011bb58dfd7ce68f9d75a4e63cf5b1d9f1576d84f92ca6c540eac71eb80cc95"},"ros-humble-rosidl-cmake-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["empy","libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670548226271,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8d864d8d847245e38ab6740c58001e4c","name":"ros-humble-rosidl-cmake","requires":[],"size":21662,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb98261822762d7a038145e9ccfa6ba546af72bfc06f881ff5bfc55c714276bd"},"ros-humble-rosidl-cmake-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["empy","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675724402674,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f02a9c1caec5f2909abbfa2942fb93a8","name":"ros-humble-rosidl-cmake","requires":[],"size":23640,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d0faa5a8f7fd4f7bc3b2c5ee381f26b2f96fc83b0634484ace3a33ca0bc68ba"},"ros-humble-rosidl-runtime-c-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670549131794,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"35fbe49a1842952ac4c77830083b2596","name":"ros-humble-rosidl-runtime-c","requires":[],"size":27525,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9437d30cc37a1cca0211ce642355a3a28d90a854b1a1351d2ccc382ce4d2b1e"},"ros-humble-rosidl-runtime-c-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675725441336,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6a0648dd7f16b25ad3cf65cbc2a5b757","name":"ros-humble-rosidl-runtime-c","requires":[],"size":29689,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81cee367699c36969b39ffe8b4d5379c0fb66784b892a254aa1797e8160f9e73"},"ros-humble-rcpputils-2.4.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670549212273,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7c981500019b6284801718f5429bf451","name":"ros-humble-rcpputils","requires":[],"size":48024,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e89e3f5caf3ee0382f5102fa920ae86c3ef743803e8e27ca8f36f6d594f1ed5a"},"ros-humble-rcpputils-2.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675725567788,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6537548ba99b7ebd824f79bcbb1eed6d","name":"ros-humble-rcpputils","requires":[],"size":50010,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38157b3e2fc219a3404380310d22015441515c0b1cbec34478ea8fb8e0b6cd7f"},"ros-humble-rviz-rendering-tests-11.2.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670549350579,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4144014953b58cf51b36c4098da27cf5","name":"ros-humble-rviz-rendering-tests","requires":[],"size":9481,"version":"11.2.4","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"708b72325165866f1e99a605fc43ae46573c713d075c0113d02e3005ca4815f8"},"ros-humble-rviz-rendering-tests-11.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675725780029,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0bc68f4e2e6b932997319190861b5074","name":"ros-humble-rviz-rendering-tests","requires":[],"size":12152,"version":"11.2.5","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3af79ff4b87009375ae354fe3ebfdbb5c6515ab984513cf05cc61f30e503416e"},"ros-humble-class-loader-2.2.0-py310h648553b_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","python 3.10.*","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":"py310h648553b_2","timestamp":1670549938523,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d8dccc7192ab2d7f30b0db29c015d615","name":"ros-humble-class-loader","requires":[],"size":49499,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45861ab6555d9f73729b94dee07b6d0d54f38f475d02d08a4e16610cd06de6cb"},"ros-humble-class-loader-2.2.0-py310h2eb544e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h2eb544e_3","timestamp":1675726258183,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b51a16cb2d3ea2e82b4556f00efc4d8","name":"ros-humble-class-loader","requires":[],"size":51627,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b339a9a4081c39a46bef911d821e4fa0d118eaf311fb743200caaf26543ea05"},"ros-humble-rcl-logging-interface-2.3.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd751b12_2","timestamp":1670549848023,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"331394e037827646e3e06d16569da2b1","name":"ros-humble-rcl-logging-interface","requires":[],"size":15968,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"529688f3c20cc8ee55f4e7d8f0389fc7ab1f0e9dcccb833c8c435b06c19f66fc"},"ros-humble-rcl-logging-interface-2.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675726144737,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4590986257cdffe11d2a12ddda391878","name":"ros-humble-rcl-logging-interface","requires":[],"size":17987,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f4352b6394bef1c8751437f0461fc1a7d064f3ced124d84c6a58297d32bb36d"},"ros-humble-libyaml-vendor-1.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670550186565,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dcd738fee9dbe1dacf768aeffb46c5ca","name":"ros-humble-libyaml-vendor","requires":[],"size":22358,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce1323e3fe36ac54c0cbb8f540e610332993f3b49b6fef6174c7514759d0fddf"},"ros-humble-libyaml-vendor-1.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675726599013,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8771adb79ec7b0c2a591f7a609a9eb6f","name":"ros-humble-libyaml-vendor","requires":[],"size":13898,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4b32dd022d42851f1d564df212cf7206fe6325d510e7bd4f8a29cacb6f9d6ab"},"ros-humble-rmw-6.1.1-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670549955192,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"de36d85f534be17155829f189a3604d3","name":"ros-humble-rmw","requires":[],"size":67284,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6530a034d4d817a652eecfaeb3b759e9fecd41ffe228e60c1870c119c85bb6b3"},"ros-humble-rmw-6.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675726359439,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c6d1fb1485c2cb5cbe4f990c07efc6f","name":"ros-humble-rmw","requires":[],"size":69496,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf9dd88c07ab663efeee2558e5dff34a933361c3870d99e046bbd2c8776bcc9e"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670549715385,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c273d90c804cc7b8d6087b8804a2617f","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":18490,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c44647ba4cef268b5c0e50cc7982c2e4c226fe1f668e56f7a54dcc66eb37b2f"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675726124566,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f295316439fc35f0c9e99190dd1a494e","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":20540,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f026bfd697c5a7ff091fad10f58d84e25cbe780bb232ab92ee6818c1963f7b1"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hd751b12_2","timestamp":1670676971555,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f99c786d84eba94374b3dc46d3132fc2","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":27878,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a99ca4004d124bb33306c4af157bc1ede6daf6e3b8f275de6a3e7fa54a569e7f"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675726494382,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6eab0ce21dab1c88ca8af926071b6d45","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":28527,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd487afcaf1e27e4137ff21704e54207d683ecf2924514dd2b6d4bc8073786ef"},"ros-humble-rosidl-generator-c-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hd751b12_2","timestamp":1670676834480,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5403d2d23b18b31507818042031aff39","name":"ros-humble-rosidl-generator-c","requires":[],"size":28200,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"386b31c0f16cad307ee6abbd5283b7e7162d5e99fed14bb19a2734c519bd7dd1"},"ros-humble-rosidl-generator-c-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675726223355,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"307c6f58d690bba69d9e9145e6fa1728","name":"ros-humble-rosidl-generator-c","requires":[],"size":28857,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e97ef022d5036911adb7a4ed3d103a64b7dde4f07f444e9ecdc66b2378276ea"},"ros-humble-rcl-logging-spdlog-2.3.1-py310hcf0c85d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hcf0c85d_2","timestamp":1670551012340,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3fb033140e9f889b242ee1e77b7360a1","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":20808,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb8b6d1f93128a8c48f86c95d7db786a2aac851be31bb385b9f70520cc9454a7"},"ros-humble-rcl-logging-spdlog-2.3.1-py310he44a079_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310he44a079_3","timestamp":1675727519489,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f94248fdf30763f27b3c662a3ba52d3e","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":22887,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b58c25c72dd7c77c2bddd9589f3598ce4c831c1584e9e50918007f2c3d88434"},"ros-humble-rosidl-generator-cpp-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hd751b12_2","timestamp":1670677065112,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"15867cd89c27a8ae800806241049de0f","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":30067,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57d46ebacacf4bc96391d5ef26b6406e61fa5424da34885edd11764b79b492e3"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675727111412,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fd25e3ba9fc895ec4f17a41a662afb8b","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":30728,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f3a40d743f4fbf2ef5822680d1a73fa4977c8794e94bac1d6cef76446de9715"},"ros-humble-pluginlib-5.1.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670551084973,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"53057734dc59e3892787497f84ae6b1d","name":"ros-humble-pluginlib","requires":[],"size":26974,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a07a386ed85ab257af49651ef528c08866c9a52aab4e043d22297921e9bc690"},"ros-humble-pluginlib-5.1.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675727620224,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"18c229aba56e36f32b8912e45718dac6","name":"ros-humble-pluginlib","requires":[],"size":28740,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ead6c329a67e62c90782472723dd0f1f4853730e4570963feb38b3746f8012b"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670550896724,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"199f7d8e0c985465e465003753200506","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":29587,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48bb8794402501a89aec87da8382aca63fdfa78481bb54208a924911d0bdbc1b"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675727383196,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83627810d6ae37d8a7db05c0035432a8","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":31728,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3d9a1a1bcab2c81afdcaa616f7d903b9abb0d1ae56de63474040947b18dc9c1"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hd751b12_2","timestamp":1670677189561,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"df69a8945efeb2e88e011db2c7a0cf63","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":28068,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7888d2585c0413c3f9fe6cd9423b340e18d2cd7d3ffece04f1130045f2cc3c39"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675727255446,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6e676104da579df9908bd74898251743","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":28665,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01d5b0873dcfa202bf04eb6c6d48179ece5a16baa81248423ff24938d161015e"},"ros-humble-urdf-2.6.0-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670559552326,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2662ccd7e5c0efaa60a08ef63ee74b73","name":"ros-humble-urdf","requires":[],"size":101315,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"544a6a7715abb646ba6b0966ae071487bb58f876460c3d0e30a1995b52844dd7"},"ros-humble-urdf-2.6.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675733772511,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7f5262c59ebaac46e9242dec3a1d28c1","name":"ros-humble-urdf","requires":[],"size":103680,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b58d830feda19a667bb6ca1dba644dc9124e39899cbe5231dc29273e922f1598"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670793652203,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f8a2a9c1b89dfceaaef7649cf62daa16","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":31673,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2247d2486e19c7e0fcc71eb9392fd5d4ced7e0bef2f66c3ac956006e91b47166"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675733615373,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"df876776f17d0065eda9ceb1bdc26850","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":32027,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c21be2cdc6c76afe70749ddf128fe374d3205b3459ee02e6e96220c88db8f75"},"ros-humble-qt-gui-cpp-2.2.2-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","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.*","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hd751b12_2","timestamp":1670968033431,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c941db35467fe0f698419c6b47d3d3f","name":"ros-humble-qt-gui-cpp","requires":[],"size":194611,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab3caba326bc081a430791421abc514617a1ce39b771a651f6ab7ccc75af0d42"},"ros-humble-qt-gui-cpp-2.2.2-py310hd751b12_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","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":"py310hd751b12_3","timestamp":1675732241199,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"52d4ef044545b705f1ae3671ed502a00","name":"ros-humble-qt-gui-cpp","requires":[],"size":582447,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c1829e888cdce81b5d451ff564e1b09dec33d6574ce2e57919c3caf2e72c1b2"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670793797925,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b28aef1d5d413a95fcb9bc21632dd201","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":29288,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d2284052a4ffb33ef8f5cc4f1c907b4eb78d4566826ede95241a35223b529d2"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675734138569,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"73e58cc4465b5ad49c09e01cb572cb98","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":29596,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfe0ac40f318b6ab654e43512b477c798ac9c21a20ecdfe41f57207c0132cdc0"},"ros-humble-kdl-parser-2.6.3-py310hd751b12_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.10.*","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":"py310hd751b12_2","timestamp":1670560145712,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b6ddba40f33911fcd88972bbf8ed481","name":"ros-humble-kdl-parser","requires":[],"size":28433,"version":"2.6.3","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cce49e7f3198b3f8c16c39ad10c7bcb6b70b06b4678ca507911efd713ecd3bcb"},"ros-humble-kdl-parser-2.6.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675734279464,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f6ddfed88052515f7960856dcd166f56","name":"ros-humble-kdl-parser","requires":[],"size":31700,"version":"2.6.4","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"abdb473d83f7ce1926e54ddacc63400dd388483ba45fbf515e8942a13a2c72e7"},"ros-humble-turtlebot3-description-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678331613250,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"32787c240434ed3f86887b704818f4d7","name":"ros-humble-turtlebot3-description","requires":[],"size":7794247,"version":"2.1.5","binstar":{"package_id":"6392755246f81babcaf7e479","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91f74ee7fbad3570e73d83e80411f92af1081ee41578b68db4dc31968e64e7f0"},"ros-humble-rosidl-generator-py-0.14.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807225510,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"36e251f47d73818d1ad53d2f309de4b1","name":"ros-humble-rosidl-generator-py","requires":[],"size":38263,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d8d14a31f1632d8e48018a426f0cee6e551322f95c0b2343bc14045fccc7010"},"ros-humble-rosidl-generator-py-0.14.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675735200297,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f873127109f11a70da249566f527397a","name":"ros-humble-rosidl-generator-py","requires":[],"size":38628,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac2a7177a32b37e394ebaad6ee93785a7977259f645220eff4af159f0133a714"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670805141191,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"439e2f75f78d41362e22f94a0f81fb8b","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":30138,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c3a00df215f3c9aa9908a075d1c919bb39e69e8626a94b2ce00c5e14837c6b1"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675734640965,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cf18272d156237e39c8c73bc43023405","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":30519,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"020e36c899d198e218d3b1af4a75733e6a71c56c4bea98478ee9e89cdb282ae7"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670805871502,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"431ca2c34bc93fc297e34bd5270042de","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":29533,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79d151914a717489cf2cf1978ae2b09a2f7e9d89f4c29a495d73cdf128ce691a"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675735096089,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"63cae3439b7fe5e66d9c21352384e611","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":29927,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8166500ab9a69b394c8d3fe0cf9a0c68040c9219b54e0876ce43e326e3095298"},"ros-humble-rosidl-default-runtime-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.*","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":"py310h927cc32_2","timestamp":1670560978585,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f483fb64ab963a0be7d82167039b9444","name":"ros-humble-rosidl-default-runtime","requires":[],"size":9722,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70226c7f9996f550cb9ed5380b6ce6ba1450c6d685cac36cc9637004d8087fd5"},"ros-humble-rosidl-default-runtime-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675735303231,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"387f09dad0e715e7481c06417010cda6","name":"ros-humble-rosidl-default-runtime","requires":[],"size":11911,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51a02b5b8adf2ab93ce1e97400a4bc14ace3cbc2965d33fac49166abda6758c3"},"ros-humble-rosidl-default-generators-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807315507,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"25d9d23008d7eb1b24cce20a7e5bf2a1","name":"ros-humble-rosidl-default-generators","requires":[],"size":12525,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e2b89f80793b585a1380412f0f9a4d391483421a5d817d2738cf4456eef4b78"},"ros-humble-rosidl-default-generators-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675735398566,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6d0dd495af51c6898fbdca08f5ce9ef3","name":"ros-humble-rosidl-default-generators","requires":[],"size":12773,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef07db32fdb05d3f14a18776273f6221235fa0c45810121ca5163b6cd3c64e05"},"ros-humble-rmw-dds-common-1.6.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807900455,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a1a8339e8938e7e14fbcd34c18d60767","name":"ros-humble-rmw-dds-common","requires":[],"size":117773,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cebda4d14614e73fe694428f75edf8828b785a28fb47a3eefcf1786d57af100a"},"ros-humble-rmw-dds-common-1.6.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675736345892,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c62fb647cde42142178fa01d1e8034c5","name":"ros-humble-rmw-dds-common","requires":[],"size":118285,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3000cdc93fa114dcb8df783b7476f927c23b4112717c61608b55f9f0524b467"},"ros-humble-lifecycle-msgs-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808069679,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9468124aa0cc7d06b57475d9cb59d80","name":"ros-humble-lifecycle-msgs","requires":[],"size":136535,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8fc8c6a79b99f5137350c522b006a16d7eb69d231e9ab92f0dc14251d317fb1"},"ros-humble-lifecycle-msgs-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675736542972,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"695fdfbab0e0988157e7d6884c7753ce","name":"ros-humble-lifecycle-msgs","requires":[],"size":135392,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97f67541db59ccff5f9e3b88c72f9cb8f3ad5b2d942e9fc6b7a68aca3846f283"},"ros-humble-unique-identifier-msgs-2.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807635730,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fc43f81911498b2b7161baa9f49400ff","name":"ros-humble-unique-identifier-msgs","requires":[],"size":47242,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ec64e8dec474411b6303157e41c25f6ca44a890ea4039a69e7c8e247abe5e7c"},"ros-humble-unique-identifier-msgs-2.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675736011092,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e9690bf42e909798b90f651dc766f272","name":"ros-humble-unique-identifier-msgs","requires":[],"size":47765,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32b59ba0c881408e6f02d597a17567798ab16cd358047236afda3696dcf520e7"},"ros-humble-builtin-interfaces-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670807764704,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ea3b3c984772ad4e3078ac65097b6d4a","name":"ros-humble-builtin-interfaces","requires":[],"size":52715,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41383fb90a4fe0ea93789ae11c4a435c876a59f56504a525f05dfea08a9ddd3c"},"ros-humble-builtin-interfaces-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675736170368,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"12fa7949bd961b7ff076c1b1452957ef","name":"ros-humble-builtin-interfaces","requires":[],"size":53249,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b90d1b7f6010d584f4283ff7b171cbd1c8234d938e76d0fda09988583af8ad06"},"ros-humble-std-srvs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808199984,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6694bf449edc9b047893e503ae0e7f01","name":"ros-humble-std-srvs","requires":[],"size":76838,"version":"4.2.2","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbadbeda6fce174b894fdec0637be3d69a3b26b7cdb29860282885a98e8f8919"},"ros-humble-std-srvs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675736710584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"03eaea5fa0261017df86807cb88de1ac","name":"ros-humble-std-srvs","requires":[],"size":76961,"version":"4.2.3","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84f19ec78e08214a28a34af1f32e308d2fd5a097a2a63c1ea123a5aa088cb6ff"},"ros-humble-pendulum-msgs-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808844842,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a2035fab55d39a7138d9d0e199e75895","name":"ros-humble-pendulum-msgs","requires":[],"size":65978,"version":"0.20.2","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecd5794c45fe504fef92c36a8496e773ca79deaa22a5567cbe4b555e18d57f01"},"ros-humble-pendulum-msgs-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737209576,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d48bb43ff551b8c015f57c8dc4c8bc4e","name":"ros-humble-pendulum-msgs","requires":[],"size":66515,"version":"0.20.3","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25affd4906d1db05835076626f3bbf4cb666db7cd098f72022fd716f33933ad1"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808867897,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9eb1424717310633e01e756637d1c99b","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":152186,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"663dae1de93beaf8ce456a547c6d0e457c553e72377bfc23594b1b6157535f75"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737386337,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6fb199625ac006df0637e2452762b89e","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":152561,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e843177a899793df87d924f489966c8014337fd448bfadc790e8f5f9ca31697a"},"ros-humble-action-msgs-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808658718,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7efe1a85e72f6d5c7b2b2bfc5c11bc3b","name":"ros-humble-action-msgs","requires":[],"size":86350,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2ad03d7adadfa6b05de127011bdf0ade8dc850b515fe265d3bd92c2544243d2"},"ros-humble-action-msgs-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737167439,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d506b7122bd435ca9833245117bf8306","name":"ros-humble-action-msgs","requires":[],"size":86911,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afada21b3cd93d9802c922c95c6957993c0bf2a2f3573dfd01fed4c264527927"},"ros-humble-rcl-interfaces-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670809377840,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4a23d1811a3521c921f4d0ee45f9b6e6","name":"ros-humble-rcl-interfaces","requires":[],"size":259448,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5eb25ad93eac89076096394bcca75f16e229c6a553c083b2ae1ee045cbcfbc8"},"ros-humble-rcl-interfaces-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737880216,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ec7c2c1a9e882bcfd50b5e6489b944a","name":"ros-humble-rcl-interfaces","requires":[],"size":263286,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"130c456de05184ad0f478d73908890da907dbe08f5b92890e2233d2bd792d52c"},"ros-humble-rmw-connextdds-common-0.11.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808974964,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a1da5c9cb6ccdb443715e76c622bbe01","name":"ros-humble-rmw-connextdds-common","requires":[],"size":31804,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a2e66f3add9c43358b1a4b15501993a458d0ae512d55cc4f8b9ccc543ddc41a"},"ros-humble-rmw-connextdds-common-0.11.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737489154,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"26503441d026bb3443939bc8bf0a9006","name":"ros-humble-rmw-connextdds-common","requires":[],"size":32108,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f099d640af56e1ebd40f7a948566d68045cf750fcf1d0c5d0db6af56a6708eef"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670809149037,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"215b71b178270fad102ae6b4236d69c6","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":169278,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd9d8ea93d655b5c5908794321d231031aec5ea5a93e85b2fe626b2cd1d4bee3"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737649119,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"84048015eb67a5668d2214ac116f8562","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":169492,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b70c7a59b863be04690f4a0c486216bf126e809712d1d263a45fa86440da599"},"ros-humble-controller-manager-msgs-2.18.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670809309705,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dbe321b301c037d5a7e32e63b5b3cade","name":"ros-humble-controller-manager-msgs","requires":[],"size":236474,"version":"2.18.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc08a5d2cd4b1dfe614f6558914149d5a9d24213dc34fa77f7abf455912cc6d5"},"ros-humble-controller-manager-msgs-2.22.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737752613,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"803d25acdd24f99e97d453e2b9babde4","name":"ros-humble-controller-manager-msgs","requires":[],"size":229452,"version":"2.22.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"949e61b17bd36a01a41b253ddd65bc1162240981cbf3b1e4ba0ac28090a324a7"},"ros-humble-std-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808824804,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"22e398d49384de5932e62c77238ed805","name":"ros-humble-std-msgs","requires":[],"size":236282,"version":"4.2.2","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe5421cb0183eeb1693b1f8cba33fcab33a29085937ac6a73782b7589ca69d02"},"ros-humble-std-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737246955,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aa7ce44fd22829455a5741de4499d69d","name":"ros-humble-std-msgs","requires":[],"size":239359,"version":"4.2.3","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e33fc2936877f65b030d402e66175fdb84e3e9d03efdfeb105227416ec479f8d"},"ros-humble-rosgraph-msgs-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670809105285,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"817858ce08a3d0e26201b23f09ede2ec","name":"ros-humble-rosgraph-msgs","requires":[],"size":45750,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5362edd6ddf0eb3c00f47664d871a0bcd9b84f8a5d81ee31e043cad412ee2f66"},"ros-humble-rosgraph-msgs-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737548908,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"16d24568628a70afda2784a626eee158","name":"ros-humble-rosgraph-msgs","requires":[],"size":46184,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb2ce795b20464095ce3742cd59ce17abe29b305b1b03ba0039fdaef3d31bfaa"},"ros-humble-statistics-msgs-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808975408,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"603f7e32db1cf4ffad10774f41b106a9","name":"ros-humble-statistics-msgs","requires":[],"size":73603,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe212b0218e7beb91dab3b4ce1762dc6df0357149aae0569165a2a250f8e01a2"},"ros-humble-statistics-msgs-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737407331,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5716a3c6d08338f35e488cc9b26c58d3","name":"ros-humble-statistics-msgs","requires":[],"size":74014,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc2f8a6a793185f1389b1ccfe957912a72b37d4f02fb5cc520ba64c6c4c8dc0b"},"ros-humble-rosbag2-interfaces-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670809495168,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d9c6e4dfbe972ba8f98578732851fef7","name":"ros-humble-rosbag2-interfaces","requires":[],"size":156741,"version":"0.15.3","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"353341b75c0f124a0a738bb85ad546df0b8e571a99f552b3dfa7a4faa168966e"},"ros-humble-rosbag2-interfaces-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737955102,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5eda73290c3e91993093ffb011dd7888","name":"ros-humble-rosbag2-interfaces","requires":[],"size":153726,"version":"0.15.4","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcae1c42e0206dfc3848914046620cd4b2d2beb2643b8759f1d8818875f030a2"},"ros-humble-turtlebot3-msgs-2.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-action-msgs","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":"py310h927cc32_3","timestamp":1678331358531,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"64dd93a84371873d67f1649f52a7dd3b","name":"ros-humble-turtlebot3-msgs","requires":[],"size":148586,"version":"2.2.3","binstar":{"package_id":"63927ba346bec18b89e70113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"adf11a533499341084621649c26033d38330266e8a15201152ede8ccb43bfe5c"},"ros-humble-action-tutorials-interfaces-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670811354430,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5ee5ba6df9cc66c4456d2bb20e5bfccb","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":97509,"version":"0.20.2","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fa4cf5ba61ddf0c8035ebcc745a5a67b52240e20e9b7fc102168f24bac26fdb"},"ros-humble-action-tutorials-interfaces-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739051817,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f7571ec3c46ee42a2748cce55965d2ee","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":98099,"version":"0.20.3","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2994e83f7f3ebaad4be1770b863daea63f88962178cbc937568379bfafdf459f"},"ros-humble-ros2cli-test-interfaces-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670811188270,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5a9061a8cd92698d020ad22613c17a39","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":127910,"version":"0.18.4","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddfb8e7d780f2a961a65efab6556278eeba4153b68bcfb5e77d4c6e514c6a91f"},"ros-humble-ros2cli-test-interfaces-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675738894757,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5b496255c55008ff7af929ce5778e24e","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":128250,"version":"0.18.5","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30d4200c230bb84c955a8cde1358ca77b37342e7143012400fdcb9c34c6b20d9"},"ros-humble-example-interfaces-0.9.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670810993016,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"461a2fdaae3ef3ed45997fa092085895","name":"ros-humble-example-interfaces","requires":[],"size":313467,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61f79b5daf5ca33d8d92e9b88144408172175bc7491ed7f3bd84197d3b83f467"},"ros-humble-example-interfaces-0.9.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675738716516,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3fb1c2558df0d0bff7e0c67a1cab2431","name":"ros-humble-example-interfaces","requires":[],"size":317756,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70961b7c1e3495a030e5c39eafc1e3a2823b6102c980289d0d381ac4bcf0e84b"},"ros-humble-actionlib-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670810698601,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6a1db45edd6f5f2cf512c97c19b64e21","name":"ros-humble-actionlib-msgs","requires":[],"size":73760,"version":"4.2.2","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2a19d89e96d41d97b0faa24eb5e11c4a73eb223dd21373166b303d94954d4d6"},"ros-humble-actionlib-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675738435927,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"46288697f0549064bfb3c3f31a98a138","name":"ros-humble-actionlib-msgs","requires":[],"size":74325,"version":"4.2.3","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e802be7bdc7677e29a5eee6c962a32f5a76386197faacd3bbef7d8e7be9e8558"},"ros-humble-rmw-connextdds-0.11.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670810976062,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3133aadb785da912d9518db2ffdc0ce8","name":"ros-humble-rmw-connextdds","requires":[],"size":11253,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecd48e1017cdade4f308fabd017ca47f0a3d3b39f8ed5a26dff1becc25399233"},"ros-humble-rmw-connextdds-0.11.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675738824090,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee54bff0d89d3f429c21bc95a18d0ccd","name":"ros-humble-rmw-connextdds","requires":[],"size":11533,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6104c6ccd884ea54c404936874a9ad63e44d3df18c079cb7054a50bba2f12651"},"ros-humble-geometry-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","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":"py310h927cc32_2","timestamp":1670811305172,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"97e1183a687e17aa19cf3fe0d1d53f4c","name":"ros-humble-geometry-msgs","requires":[],"size":237451,"version":"4.2.2","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"155632398e6904929263bce4a4a772c91aca490a186012bfee78457e1e240bdb"},"ros-humble-geometry-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739115452,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eb0f0578adf4dfc003aed7b15e2ad941","name":"ros-humble-geometry-msgs","requires":[],"size":233285,"version":"4.2.3","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d238099739921d2e5001ca89b2af511940dfa99734770230024f2746697d8d9e"},"ros-humble-composition-interfaces-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670811508859,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4aae71efd1ee5c9a4e0d63f885815303","name":"ros-humble-composition-interfaces","requires":[],"size":109264,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b29fa47ff0b9bc098fa716203692c8302dc7eef5620f5ef6a27f89f9b20d166d"},"ros-humble-composition-interfaces-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739305173,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ffc38cfa07301f9b096f000ee05628f1","name":"ros-humble-composition-interfaces","requires":[],"size":111837,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0314883a46b5a1a76376b1a30a6ba2ad677f7fe7a8da2b2c1e5508f5dc681e49"},"ros-humble-test-msgs-1.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670810850736,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4551b69237df9859545781a2e0937b5d","name":"ros-humble-test-msgs","requires":[],"size":576004,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41b64f8fa4263e16b343ad11d89f12db5a1b7c8d9398914f2d8e05f167a52b22"},"ros-humble-test-msgs-1.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675738707123,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5313e055411ce2464ce8772559f9fd23","name":"ros-humble-test-msgs","requires":[],"size":550789,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54896c5d97d2dbcad1ce56bccc2a74d5980d7b92916c2157be1fdffd65c25f84"},"ros-humble-bond-3.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670811703742,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1b3215c5d39bbc02d978a940f1c0b754","name":"ros-humble-bond","requires":[],"size":60432,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63115461ab230c4a77b787e5b6545d7a484a820bf3c8a7db5357147820e4b227"},"ros-humble-bond-3.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739473245,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0dc3a00178acd8d935abb12adea490f6","name":"ros-humble-bond","requires":[],"size":60892,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0006fddcbbb16388a228a0e6b6c61ee9cbac34d9dfb211c7d4cd02c2be96826"},"ros-humble-geographic-msgs-1.0.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813449570,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"68b225912ccedc5a9a2992d8678c6612","name":"ros-humble-geographic-msgs","requires":[],"size":231304,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d62a7d1805c6f233cd43964b830450890e359eaae48452e10e709a8be8b598d"},"ros-humble-geographic-msgs-1.0.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740952097,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"248880505cfd9adc7ee71ccea220fbd4","name":"ros-humble-geographic-msgs","requires":[],"size":236888,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f2b6446c0a93a9c6f93f8cfaa9756b8257f48692a6663ccd9342b024ebac08c"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1678331128794,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e127d33fb80154d659274a745a40b2d6","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":264375,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"437e550c58fa891181fe0eb8c388356c5263acdb376112030fd2255f1335809d"},"ros-humble-graph-msgs-0.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812440714,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"59a1cf8649ba968e94751e3f770c5c5f","name":"ros-humble-graph-msgs","requires":[],"size":70938,"version":"0.2.0","binstar":{"package_id":"63927d734f66fd116f54af91","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef39005e753f5f96cc484ccb93db5c190cbbe649db15ed366070a0a22efc1449"},"ros-humble-graph-msgs-0.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739892586,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dd99c0a6da4495ec2430c03c448e9b68","name":"ros-humble-graph-msgs","requires":[],"size":71463,"version":"0.2.0","binstar":{"package_id":"63927d734f66fd116f54af91","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d591f304024f08228e64528a5a9b4a01b0574e59f6c004fd2d783d31ab3de4e3"},"ros-humble-diagnostic-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670812654081,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cf9c6ea278d1c6dfa53a062303ec7ae2","name":"ros-humble-diagnostic-msgs","requires":[],"size":111020,"version":"4.2.2","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe872e34f2647b727c3d61f8ac6f4de4fba772505f9d00e043fdc5459aca58c4"},"ros-humble-diagnostic-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740263481,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"584a645a92e58eba14c2f3d99ad3e951","name":"ros-humble-diagnostic-msgs","requires":[],"size":111198,"version":"4.2.3","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"506bc56c65f4172fc1ebbf2b8c0a2c92c374558a9d005b09d9fb384189df245c"},"ros-humble-trajectory-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670813043432,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"64a706eede6fe9170eac5c26b5db7987","name":"ros-humble-trajectory-msgs","requires":[],"size":99963,"version":"4.2.2","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f1f06fbb911e76e93421d46a1a8a8a0138b967b16017a6e1de5c66c144ab742"},"ros-humble-trajectory-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740596118,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"61e564f9bda870625c8375ea0b30ce55","name":"ros-humble-trajectory-msgs","requires":[],"size":100969,"version":"4.2.3","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d34e6b4d2267ff8e8a760a4d0dc2ec41f9700908a3fa3c2bb9fbb1edd48fa5e1"},"ros-humble-shape-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812853778,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f536edafc9751ac0233fcb4085188dfc","name":"ros-humble-shape-msgs","requires":[],"size":85762,"version":"4.2.2","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f39ca733439876a8b1d5f674da281b7522802f271b331c7f2c27641006f3a77c"},"ros-humble-shape-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740426727,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"35745cc0bcf8c6055aff1e799f00bb21","name":"ros-humble-shape-msgs","requires":[],"size":86248,"version":"4.2.3","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0b90472cd8e837840e5aa688afce37e5853a8268c8caff87d922d29c668e01b"},"ros-humble-rosidl-runtime-py-0.9.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812313015,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9c1519a2a386371e4992e56c00e9b97","name":"ros-humble-rosidl-runtime-py","requires":[],"size":25222,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e7da92b7c89904bbf4eebbd8e488318a111c339e56b6d701a38679bd3b2f12c"},"ros-humble-rosidl-runtime-py-0.9.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739907240,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"05d656fb242c95242662560fbf521e42","name":"ros-humble-rosidl-runtime-py","requires":[],"size":21178,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8257d2a0cd7406834048237848b6187e731ed99ce7df04458b39cfe5cf31ac69"},"ros-humble-nav-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670812488924,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7c21741f0e0c452b9a0a5d5078af2d4","name":"ros-humble-nav-msgs","requires":[],"size":154046,"version":"4.2.2","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1fee985b092cf447f00abd82d793879432903f0e866a29ee31a01c8c576bfeb"},"ros-humble-nav-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740107811,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0fcb54b601a6b73f3230faf0238c953c","name":"ros-humble-nav-msgs","requires":[],"size":156417,"version":"4.2.3","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d44ff45110d3d626c8131c96c8c3e3814925dc96e07650e17031fb9595f5afc"},"ros-humble-nav-2d-msgs-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812796699,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d7ff06fc45cb8cff0002b596919e6406","name":"ros-humble-nav-2d-msgs","requires":[],"size":85594,"version":"1.1.3","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"810bdfd65aff5d8d8025c1c798fb9309733de9e8df8c1e9e32b7d303cfa16b3d"},"ros-humble-nav-2d-msgs-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740221671,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"429f48a046f2941518bb23edd24d2cd3","name":"ros-humble-nav-2d-msgs","requires":[],"size":86107,"version":"1.1.5","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69509bbacea701303e4aaeb43fe5b107e8e4fdb33cc7513ce56f4afcd1c3ebcd"},"ros-humble-vision-msgs-4.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812984024,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"80c8aeab99e450cdeb676905a9f407ac","name":"ros-humble-vision-msgs","requires":[],"size":163158,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4172d8aa89c188426053946189d27640182f1bdbba76dc87cf9d7bf80b5b3048"},"ros-humble-vision-msgs-4.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740450552,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"53263569882ffa78cc44d7ee6752d099","name":"ros-humble-vision-msgs","requires":[],"size":171424,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74327ccfc82849c313befd918dfa5de1553b5398d1de34ba8a25bfb11fd103af"},"ros-humble-octomap-msgs-2.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812635737,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"87ff156d717afe5dc587d7f01abc2db7","name":"ros-humble-octomap-msgs","requires":[],"size":96193,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b77cadfc71d737dd6ecb84d9bb1f46d942d07f3310c91c46f228be977b79ffa"},"ros-humble-octomap-msgs-2.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739919945,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4b55df044bc034854c24bce165fe4ca1","name":"ros-humble-octomap-msgs","requires":[],"size":96590,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fe3bcb72de24401dad9382e4aa1802979f8c2727c06b391ca0cdc4e4b390183"},"ros-humble-ros-gz-interfaces-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813199497,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f4b9caadbd5d0ae04f7127ed7638b571","name":"ros-humble-ros-gz-interfaces","requires":[],"size":258183,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6cd410f4b0723fd0bf334b53d0ebe86e296687dd79b09e946da08536223ddfd1"},"ros-humble-ros-gz-interfaces-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740706207,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d6210229e3f0586195be999bf8802b51","name":"ros-humble-ros-gz-interfaces","requires":[],"size":269304,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcc554760deec0055417ddbc300f80a2dc60827594225c52cfdd5a66052de0ec"},"ros-humble-tf2-msgs-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813108430,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"78f4b7155f4fbc7bca6ccf10eda619ba","name":"ros-humble-tf2-msgs","requires":[],"size":132525,"version":"0.25.1","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"211d4ea9bea25b7721ae674bd0f1fd6ef624b1dece196f9965c1654aa3d47c7a"},"ros-humble-tf2-msgs-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740847430,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e3ac79198295dc2857c1b675ce4bc177","name":"ros-humble-tf2-msgs","requires":[],"size":131383,"version":"0.25.2","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13cfc80a27fb8beb4a4fe5ffdf5bfa7bc4033c5c6ebe9abeeeb2e9f8aacba7d6"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812437453,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99f43543db1d7d1012c1a368e0eaf7cd","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":126698,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b5a0abecb32a175a15355ddc3c6fead3463cc4cbfcf4059bb2d151be25f0b02"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739980345,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e5938c8eb3677e396dcc286c7f2cc2ae","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":127146,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c4bdc771454768afab1fdad3bf7a53c2ab43a4d83c478a0766093dd54203aca"},"ros-humble-sensor-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670812963828,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3179c3c9a09e8dcb91e3126bee1baf98","name":"ros-humble-sensor-msgs","requires":[],"size":360036,"version":"4.2.2","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a11c97fa8077558e35ee9acaa4c5c917cd7824017452cec49562e717026ae68"},"ros-humble-sensor-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740645531,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"543dbf46a42580047dee286de42623fa","name":"ros-humble-sensor-msgs","requires":[],"size":354426,"version":"4.2.3","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"212526768b2aee28bdaeef0a1e3728cf88bd4e99f975af62ed840a9f52bec300"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670812593875,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c3f38b34c4b40462cacd651cc7b4bb32","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":96988,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9225e40989143febec74bd890189a61d47f1462370b74fda8b3974fe7dae850"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675740174494,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6ace035ac28059408844c2f23dfc1d1a","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":97252,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56ba64dabdf2c0cc7dfeb63d75206c74b87ff4b14aabc4ab2a8efd43dadd2c14"},"ros-humble-tf2-0.25.1-py310h2eb544e_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h2eb544e_2","timestamp":1670812703823,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ebf08fdd8db25c04a046d85247daa119","name":"ros-humble-tf2","requires":[],"size":93569,"version":"0.25.1","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa8e8784725f35a3c3d7f99710f050b34201f3b12ee066679a44846af81cac68"},"ros-humble-tf2-0.25.2-py310h2eb544e_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h2eb544e_3","timestamp":1675740327736,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3cbf4817b787e39df21e84d0bde0d139","name":"ros-humble-tf2","requires":[],"size":93947,"version":"0.25.2","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8b898021983f44b5d5bac03fcab289ba88034617af967a45d7f9b568bb79b88"},"ros-humble-ros-ign-interfaces-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814367568,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e518dd14c4579508ba2eb496b9a93dfa","name":"ros-humble-ros-ign-interfaces","requires":[],"size":229365,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e44cff10c9a9f6027287e042708b88e5a654a5f19fcf58bf1a62d2e7bdf6f598"},"ros-humble-ros-ign-interfaces-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675741875367,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5a7c34bb832978c4173ff25bf63a8922","name":"ros-humble-ros-ign-interfaces","requires":[],"size":243095,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3b2ad041c9ce07eb052e2ab9c605838180dfdb4d3cbc25755f94a34e4e4d4dd"},"ros-humble-sensor-msgs-py-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813968294,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e761752af7e1da19caa11571c4f3fcf1","name":"ros-humble-sensor-msgs-py","requires":[],"size":18958,"version":"4.2.2","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d2ce9f32520af869e14f5325cd2ce36f514276edb04553b114f1ec1845e16a3"},"ros-humble-sensor-msgs-py-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675741649359,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1edba103117e78998a2cacca6f893d50","name":"ros-humble-sensor-msgs-py","requires":[],"size":18513,"version":"4.2.3","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e603159343068549b4eecc318d35cdc487faf638cff29d3dfe98719c400aff2f"},"ros-humble-visualization-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814363113,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a6ab8ce1ca96344e5454c72690e9d2ab","name":"ros-humble-visualization-msgs","requires":[],"size":235826,"version":"4.2.2","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c18c81c217db358e23c020c9bdfe8e980a6b435725446af918db2884e36bc11"},"ros-humble-visualization-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675742190363,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"38d7589170380940a9d5c6fde8382a42","name":"ros-humble-visualization-msgs","requires":[],"size":229736,"version":"4.2.3","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"134a445dbfe5989e25d3e682da785cc7f5101783fac5f132f1f71dfab6d18d0a"},"ros-humble-stereo-msgs-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814534580,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6106cf0530399b5e90758a9eced9122","name":"ros-humble-stereo-msgs","requires":[],"size":53586,"version":"4.2.2","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15add8aaeac5cd85384a0f819f12a9c2d709245375f2de8116c038a9a773587a"},"ros-humble-stereo-msgs-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675742405886,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"69653617386d9d81f8cd66f3893fdda7","name":"ros-humble-stereo-msgs","requires":[],"size":54071,"version":"4.2.3","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bec9ac4930f9ac7705b650d555f5ed36d718562e401d4019e0170faaee3033fe"},"ros-humble-rmw-implementation-2.8.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813857259,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1050881251095ed170a843b0f6e8b0fa","name":"ros-humble-rmw-implementation","requires":[],"size":29109,"version":"2.8.1","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"143e9cbf275e8120d77df921f309f61ca34ef2a9f5909ff1e385583dfff616a2"},"ros-humble-rmw-implementation-2.8.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675741531735,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5cee37b567c6832ef65109d7e3e56f41","name":"ros-humble-rmw-implementation","requires":[],"size":29304,"version":"2.8.2","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74041227f7c039029a90d097e3ba08d875d0fc1d48fb28674e076a1dc914b89d"},"ros-humble-object-recognition-msgs-2.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814157913,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f153fa2f7a35fb7c5eebe970600da4de","name":"ros-humble-object-recognition-msgs","requires":[],"size":186049,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f8c7143aadb9d161766026878021a48c88192b40136a9c374a716495ecdf4cc"},"ros-humble-object-recognition-msgs-2.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675741890765,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0079916aa45be73fb59d877df06af41","name":"ros-humble-object-recognition-msgs","requires":[],"size":182832,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c766d1717d56e2a7f776463e861f81496e1d3ad4ea6ea361ee755f3530808010"},"ros-humble-cv-bridge-3.2.1-py310h27a8b25_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h27a8b25_2","timestamp":1670814650492,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7298f857857133e81fb8fb1050da62b5","name":"ros-humble-cv-bridge","requires":[],"size":111217,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64ad6ebf317a82834ff320554a8bf067f76e15ec7473e7c9ef97196ff013d98f"},"ros-humble-cv-bridge-3.2.1-py310h27a8b25_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310h27a8b25_3","timestamp":1675744254468,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"196c6e2fb405c5d038f1636c942bbe5f","name":"ros-humble-cv-bridge","requires":[],"size":111680,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"138b6b19f62714181a63e7fa6d98ebf1323aa52f63c3b47253cef5c733f398c1"},"ros-humble-dwb-msgs-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814380086,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f167942c150bd07ddead86a783ee913a","name":"ros-humble-dwb-msgs","requires":[],"size":156599,"version":"1.1.3","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5afc876abadfc5536b2a24dd55923403ee960898c4f3e1374a114cea0af9ab38"},"ros-humble-dwb-msgs-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675743557246,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"abdefa87822cb05d87e660cb572a1525","name":"ros-humble-dwb-msgs","requires":[],"size":163879,"version":"1.1.5","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bf94f037c4eee2bfe2f2d65215db2d2b8e1c2d6223974d176963821b27b1702"},"ros-humble-map-msgs-2.1.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814186253,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"928050998ec25adbad6531843a765320","name":"ros-humble-map-msgs","requires":[],"size":161538,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba79d5b7c23574ce4aad21936354524773d52db10ef1f04f0dac0b8d46cc9087"},"ros-humble-map-msgs-2.1.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675743003256,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0cd86957092ecd368226b4a55805c1f7","name":"ros-humble-map-msgs","requires":[],"size":161344,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78689f75ec08aa7e6ce92210a4afbe9fd4b79d7f122ad3e1aa846c5d0570e205"},"ros-humble-control-msgs-4.1.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813969541,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b5611d43440e5123a3a16a99f018ab76","name":"ros-humble-control-msgs","requires":[],"size":431893,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"115229d41de79e9fe38db1787790b5a5f46c8f84044799dd2a65e5b21646b905"},"ros-humble-control-msgs-4.1.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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"],"build":"py310h927cc32_3","timestamp":1675742359130,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"042f8b71dffadfccdc5cad33d97aa986","name":"ros-humble-control-msgs","requires":[],"size":411546,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a2a4e48128815b3675e8a0ec00e9705e57c83d5120761d38a3396603313831f"},"ros-humble-tf2-eigen-kdl-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670814807092,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e28823424ae16071ff5714d5699a74b7","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":19899,"version":"0.25.1","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5db6864d189d27b67d9895ba1ea923e4ccf4ec6d3f092b0bad62c78ea673298b"},"ros-humble-tf2-eigen-kdl-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675744850480,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"75d97adcc35e6d8e3be42e14e9f00d06","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":20189,"version":"0.25.2","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"240b5c7f262c1d18cbd0d5333db372ba6a80c0d39d1c394aaa92bf788a4f2b8d"},"ros-humble-image-geometry-3.2.1-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670814149230,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2b38da7fca00590b27e248fe133663bc","name":"ros-humble-image-geometry","requires":[],"size":40984,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01ebd4667ed73cba2174c3ce63cadc3c4dab54375e33cb55b8dd9e08247ea0c2"},"ros-humble-image-geometry-3.2.1-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675741637275,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"993492a2f028621b030073c4362dc4bc","name":"ros-humble-image-geometry","requires":[],"size":41451,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fd3856fa05f1dfb6ad05f9bb319708e942c409981bc30aea9b09e38f9d610bc"},"ros-humble-gazebo-msgs-3.7.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1677541459706,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7b22209b7ad396dd1719bc765a046474","name":"ros-humble-gazebo-msgs","requires":[],"size":576703,"version":"3.7.0","binstar":{"package_id":"63928103d9a997aae723fff0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aaa5e0e2c46406df7abb0a9898ad3ff21ceaa8852574356ed7a8ec878ea19861"},"ros-humble-pcl-msgs-1.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670813976182,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"57bac097d3953ed1b8f0140abfd83afb","name":"ros-humble-pcl-msgs","requires":[],"size":99282,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3b9c12e9d796f8f2c477a3338eb0604b5b613900ec07883d761c84e5268dd3e6"},"ros-humble-pcl-msgs-1.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675741442116,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2af5702ba7d79f3f53263ec1a1f78d71","name":"ros-humble-pcl-msgs","requires":[],"size":99819,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ce5aca2234e0cfb9ed992e3c475115138417cb0fe8314b8036b365f63c9545a"},"ros-humble-vision-opencv-3.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670816009647,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"73c66eac80666b07b294feef99d9230a","name":"ros-humble-vision-opencv","requires":[],"size":11680,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c3f01c2b0d48f072be909dd0305aa1a4cf3e6f3cb6955aaef928af6eb460c94"},"ros-humble-vision-opencv-3.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675746182563,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a478647014082e83ba3a87d863591ce","name":"ros-humble-vision-opencv","requires":[],"size":12013,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"256cb04a866e69ea8d7b826b325dd1a84d0a070dc42f5097880b40a17a6db55a"},"ros-humble-rcl-5.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670815158149,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"60b94ddbcad56cbd53c6bb02206eb36a","name":"ros-humble-rcl","requires":[],"size":131242,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80b731cbe534d359a1bb38b56c870479b21d1b81d1a130e55ac5ac31a781d750"},"ros-humble-rcl-5.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675745323753,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f62aa0bd679f29aeda48ba92cc788300","name":"ros-humble-rcl","requires":[],"size":131749,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e9f0222103f8e9925559dc1a541c9fdb84a6c92fd229a58ddb6c2005e375e06"},"ros-humble-common-interfaces-4.2.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670815900365,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d3202a5b7f8e202ff1f7ed18ce33e9eb","name":"ros-humble-common-interfaces","requires":[],"size":11412,"version":"4.2.2","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4142dca9ecb777e7d906441e8f232f8c957a0f1726fe870a71727e7f72459225"},"ros-humble-common-interfaces-4.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675746063157,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90bf4f5ee32560d69cc549ef1fbdc0fd","name":"ros-humble-common-interfaces","requires":[],"size":11649,"version":"4.2.3","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"466bba2656f6e472771b70261ea3ce09f050833e9922e11ed11fd7e3bbf393f5"},"ros-humble-moveit-msgs-2.2.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670815796211,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"06fa62d2238792e296ec7ea8ca96128b","name":"ros-humble-moveit-msgs","requires":[],"size":1213026,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1a64a95770d3e65485ecfa4272105639b928d20e8cf99f96364143e6c6e8828"},"ros-humble-moveit-msgs-2.2.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675745943040,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"84022cdd747b824d197640588374bf34","name":"ros-humble-moveit-msgs","requires":[],"size":1207228,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f3f36f9ef64a1c3b4e43a0b0804fada1ab44ba56ae22e7a52fe26eb456cc645"},"ros-humble-rcl-action-5.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670816712818,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"11a5105462431844ca16839889f639d0","name":"ros-humble-rcl-action","requires":[],"size":50209,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54a326f625d637dc8f15a27167e6a68ec52f2b839ff12b84a370d8d0d2a10bc6"},"ros-humble-rcl-action-5.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675746860008,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4880406ed176c4e949083c73c1ee625a","name":"ros-humble-rcl-action","requires":[],"size":50561,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91e80dfe25b6dee59928f311e9e83a9af9919350e1439b73a8a2cc82e7e13e23"},"ros-humble-rcl-lifecycle-5.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670816603965,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"95ffcafb14ff56edd35e61db84e8b6d5","name":"ros-humble-rcl-lifecycle","requires":[],"size":31249,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"681b00ad1e946c4b68144e8e5b3ad787b37b25b3d829263b34964f0cf25153c7"},"ros-humble-rcl-lifecycle-5.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675746713761,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"14bae084d84b7c959723953d050fd613","name":"ros-humble-rcl-lifecycle","requires":[],"size":31527,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e089e132d1d6b656166c2507e1f48941a1b3d8529a81d36cc94bb1f57e010f6"},"ros-humble-libstatistics-collector-1.3.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670816486689,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3e74cdc9f692fa539f86b542b6a64c96","name":"ros-humble-libstatistics-collector","requires":[],"size":32858,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f0c86f34b53c3168d6ca77ab5811927db047f392d403066585ab64b71ecf043"},"ros-humble-libstatistics-collector-1.3.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675746573620,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae7de02a14f6a69674fb611f46a07e54","name":"ros-humble-libstatistics-collector","requires":[],"size":33097,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c32d08a17a0e941656096b43512376cfd150710563ed2dd543979b3bfea5ffa4"},"ros-humble-rclpy-3.3.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670817744627,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5c53f3e9d66ba7e1c2abdd3ea02561a7","name":"ros-humble-rclpy","requires":[],"size":500054,"version":"3.3.5","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90c281acc560a2165611235adee138ffcdbc5a4e994563494b1b31b10373769e"},"ros-humble-rclpy-3.3.7-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675747761291,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e552866147251212cc944c012136ffd","name":"ros-humble-rclpy","requires":[],"size":497091,"version":"3.3.7","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5cc3cc6241d2a50ee18ae8f533e0eeeb6186ca4410e9a8ccc9a03738701737ec"},"ros-humble-rclcpp-16.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670817345145,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7872468c29a8abebcbd8a7fca2f79baf","name":"ros-humble-rclcpp","requires":[],"size":671433,"version":"16.0.2","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4d768055279719ca34401beffcbac5cb6f72d79a1b02ebb5086f8098822c13f"},"ros-humble-rclcpp-16.0.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675747433833,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"289d402d810afc0e1e7e394b24cbe500","name":"ros-humble-rclcpp","requires":[],"size":660797,"version":"16.0.3","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99551ea63530abd0d8a90a01b2841d9876f18b20222c3576b68196488cc3eed5"},"ros-humble-examples-rclpy-executors-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819713402,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"218f951629258ae70f7e979378e1e6e8","name":"ros-humble-examples-rclpy-executors","requires":[],"size":18430,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"938af5230b52eac67185f363701fb1b245283dde9afb3fc92fc2f82aa6298d0c"},"ros-humble-examples-rclpy-executors-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749250667,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dabc0d4e779163806fd43cf663c2b0fa","name":"ros-humble-examples-rclpy-executors","requires":[],"size":18024,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe22a53d57f7a2a837e38c0f701ddb47ae6a6f363944fc82006142a734d11963"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820949083,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fc20ac66ee37d058e090175dd63df814","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":14216,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f259570b9cbeaaca0637389d387f28612aba368bc7ed1031229b2f2be1fc631"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749398010,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8446c6a2b120eddccc5af1e3477c35b5","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":13969,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2886d78082f5476fd6efd09671fdc75f8ebf1474df96e89af62513f675911941"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819519341,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0781beb048efc62072a72c974a440486","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":17550,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f6b597ebe667ccb4e4d3b5198ac2d4e7f6db832b02b1feaff967cd74016c952"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749028109,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1898742134ee35856ce91698f880c60a","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":17219,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c95415978a60324b9a746f4929981fb2585b4c17f114c0eced172b0f1b28b73"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820860073,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e33e0df68f068650cb293bfe16349120","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":12878,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5989fc2060a33d60e9a295dbbabc2f8cd58fa3787a90811e23c7092a745a86ba"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749305710,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"092a19722a5ae483692a728bd4529c9a","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":12682,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d817ef4ace10bdccb63accf29c8df852a119ad952ff25f436c1df5dcf55a44c"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819620592,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d599844e1ab33187de9ea7652edeeae9","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":16273,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba1ddc677d8eb8cf84a391898fb259a410afeb1aeef60bb956a4fab182a45211"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749138557,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"84e8b8cd5442af2bf13507664adb5bb9","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":16015,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4baba906b1924eb37974d8d3ad52c74cb7afae880d2476ad7c6fb79e93330f4"},"ros-humble-turtlebot3-example-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333266360,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fdcb073d8a3916174c45c81e68fa3b1e","name":"ros-humble-turtlebot3-example","requires":[],"size":21445,"version":"2.1.5","binstar":{"package_id":"639286e46e0eca100b4a1681","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4215deb0cbeeaf729c1423df26eed631f2ad8ef91d65230ca3c6683b505e7e03"},"ros-humble-action-tutorials-py-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820936864,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5b0fc4aadd62479f6aa78c92bc1ce28c","name":"ros-humble-action-tutorials-py","requires":[],"size":12879,"version":"0.20.2","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"555851a2df148f46acfe6233777519f4f40484f52d481d65cd763f3a3a290442"},"ros-humble-action-tutorials-py-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749546810,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"07f066c8dc83396712ae1213cce412ac","name":"ros-humble-action-tutorials-py","requires":[],"size":12719,"version":"0.20.3","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54a25f817cc7f1a9d1cd6cb743edf9887f6c8c0ade97bfec6481965d0c05f687"},"ros-humble-turtlebot3-teleop-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1678330592134,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5f41e22e2e889417c4e002402b297b76","name":"ros-humble-turtlebot3-teleop","requires":[],"size":13517,"version":"2.1.5","binstar":{"package_id":"639286e7a2b71210080fc9b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ba46bc5833a7f1137c90b6e12d20eadb92efc17c32e3a78733052fb52b04d6d"},"ros-humble-dummy-map-server-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819745744,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f4539671bf7d1cc339b08c6fd42b706","name":"ros-humble-dummy-map-server","requires":[],"size":64143,"version":"0.20.2","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2336a5783a4b449d14ad939f84f2b2cd4f08dcc469bdfc0a3963dd8f6a8d4e04"},"ros-humble-dummy-map-server-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748397749,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bcc872325c9c41937ef34fa71148c853","name":"ros-humble-dummy-map-server","requires":[],"size":64412,"version":"0.20.3","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25456868f3f65328dc5f8191981f4e010bc987c7f9fbff096b4f18b0fe998f09"},"ros-humble-dummy-sensors-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819588181,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"56b033b7f3711d619eb61d7c4d9144d5","name":"ros-humble-dummy-sensors","requires":[],"size":91077,"version":"0.20.2","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6599356b7d118f5c5a64cac8647c155c870c430c21762a65c35b543d67622eff"},"ros-humble-dummy-sensors-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748241882,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7a7787cb3cfc2442b48a5cb8021b1e75","name":"ros-humble-dummy-sensors","requires":[],"size":91393,"version":"0.20.3","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e1804486ee74a0929b9e8b0dd9ba74c992cc00a41c5ed5e67caacb6bdc98e7b"},"ros-humble-hls-lfcd-lds-driver-2.0.4-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_3","timestamp":1678330022045,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"41b73a8e38ebd96651f7ff2d8074dfd8","name":"ros-humble-hls-lfcd-lds-driver","requires":[],"size":106791,"version":"2.0.4","binstar":{"package_id":"6392870d46bec18b89eae551","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c5525aa20b4086861a2ac0cae6302ce3eba67dda7216208b84e6879c5afefe8"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819439765,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dda48d88cf4b15d6c2b44ab3be11d115","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":13402,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a046df264ecb654fe9d49dffaad037d7ab1efe4479fe58a4f9ea0c0b8fc49122"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748077504,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f459d986a6a1f874c3a9d0e238f50e40","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":12901,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a11fb4f2e28fdd3ac5d831453891dbf360548480d8cbd9ffdeb1cac20e22cec"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820808902,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"224daa2eb091820783eff683c6370e55","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":33125,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19831d0d57fdb307b432c0c867e3878be5128e58538d150664c324bd02c89e6d"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749440354,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2aa68e009eeaac15a062110bfda1a6e6","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":33422,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2195e743ad534e6ba86a3c9b2716b092b22123b74acedfcfb9ab04b6cacb51a7"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820623841,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"229dad1f873c1ed389590adc0bf002e3","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":214487,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78aedeadc665ab99cd8e8fed4accbf47f26eef274225f59e626475a6c47002bc"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749290577,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"131e23452dd77d9d805ddbc5f8a7cfef","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":215247,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6567dba5d2fbd703aded7cb96090f172943a1c1f07b655a2659739b840092c0"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820026071,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d8f5d22d71e0cde3fb99cdb02a0e6e1d","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":25219,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b91f8011eb8cd103869de49ee7477ad1c47fa2998a11db42a41c08804821da17"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675749680155,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ca0b47998ae1ea534f97fca9be0f8b53","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":25538,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dad785ef20d694a3489f77de5889e0fa55b299a98c657be51a2d0769f7d06814"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820451490,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"43b30ed116e976c8ddff86d7eddc4446","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":30694,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91f43e2961c0758a83ad4fe2c81ccb580490f6e70453bf0d3950a1656878f600"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749108574,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"50b147b4e3051cd8d73c29318c6916fa","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":30986,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f83362c1ddf395e9b9ebefa5e73dd1ba1aa7a60a60c56981cf6a53eb6c00df3"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819884234,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"627ecb5e72a9c8752c17877d3163e980","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":130486,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e21d64678d76cbd720679b79b6f8be8b95c7d4c31bf7d293cb132c461f1c9429"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749476497,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"42aa4e954dcbde64bd72b7ad0ea13ded","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":129959,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04dc8ad24386981a61fc50583203919caf49222cea405212111b438995af73e6"},"ros-humble-launch-ros-0.19.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819479774,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7e314bf640adbafdc1b13139d68d348","name":"ros-humble-launch-ros","requires":[],"size":68046,"version":"0.19.3","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"270a6f7561cd25f01260c40444fcc8f5c25253d8d102a6f14470cb8af5d5eb34"},"ros-humble-launch-ros-0.19.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748554673,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"072fd70334526393f8ae19e64970113d","name":"ros-humble-launch-ros","requires":[],"size":65502,"version":"0.19.4","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0658e08e78cbbb5bb864bc28971fdd18e8a943bbb0d1524a13d457d0b16879f"},"ros-humble-tf2-py-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819604906,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"004353a58276d64a7b92318b9d76e483","name":"ros-humble-tf2-py","requires":[],"size":30171,"version":"0.25.1","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"243eabded800310511887e07fefa912b694e69b45a17140bdfdeb624774740ca"},"ros-humble-tf2-py-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748745845,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"712fedb52f92d404898359c3f3e74a3c","name":"ros-humble-tf2-py","requires":[],"size":30517,"version":"0.25.2","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23b40ddee41852a62aa0e922e5f58d57664916fd4d28ca26859d41d0fa71d9f3"},"ros-humble-rclcpp-lifecycle-16.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819372709,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f1216f54b75c7f18b659d6764261e481","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":81873,"version":"16.0.2","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3be3f3ae4d888103071ad0742391635aee8ebe8d2fec8a3363af7a5560f05d54"},"ros-humble-rclcpp-lifecycle-16.0.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748429283,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f185bdd3a980277cbff1cbca290a64f9","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":82239,"version":"16.0.3","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc84c04a20b78cb71e8f6ee02a1b1eaabf44a257e2211514c083a9f69820d788"},"ros-humble-rosbag2-test-common-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819563196,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7528bb743aafe962efe1f635c495007","name":"ros-humble-rosbag2-test-common","requires":[],"size":20906,"version":"0.15.3","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36c7aae87f926082ff90b35322c50bb9af521f58ddf8dacf5c669258634ec425"},"ros-humble-rosbag2-test-common-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748204045,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f7fd8e4676477830ca65c8660109f649","name":"ros-humble-rosbag2-test-common","requires":[],"size":21194,"version":"0.15.4","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"791cf116825c6b658d889cdb4c58e8b2d6600b5eefd7e0716b4195987a085ef3"},"ros-humble-demo-nodes-py-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819849486,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"837b8e69edba2fb03c2425896954f4e2","name":"ros-humble-demo-nodes-py","requires":[],"size":18507,"version":"0.20.2","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99f5514607fd13f16960f2b03ff719264ba5e504e38f25e5474a44707ae000e0"},"ros-humble-demo-nodes-py-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748480094,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9a11425945aec39bc91ec7ea7587ada5","name":"ros-humble-demo-nodes-py","requires":[],"size":17830,"version":"0.20.3","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89b7be8c37cb2192e07079deb2da44ea5fadbf457d9a9560bc8822896c01798f"},"ros-humble-ros2cli-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["argcomplete","importlib-metadata","libcxx >=14.0.6","netifaces","numpy >=1.21.6,<2.0a0","packaging","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819403087,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ea42880786e5cfc0e4a368c55f7aba2","name":"ros-humble-ros2cli","requires":[],"size":44722,"version":"0.18.4","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f73df675d8847697af7f7d56d73f9cfa4a64d3fc1d05039d472f1923057f6be"},"ros-humble-ros2cli-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["argcomplete","importlib-metadata","libcxx >=14.0.6","netifaces","numpy >=1.21.6,<2.0a0","packaging","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675748100725,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"58967af66e082c8d5241fc2005bdced6","name":"ros-humble-ros2cli","requires":[],"size":43239,"version":"0.18.5","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3c95f1baefdaf6b2db5bed05a3e3e0f73d3321845a2b035c7dddf28e1c49238"},"ros-humble-rclcpp-action-16.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819923257,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d93546cd8e2f1084e2443855ad261870","name":"ros-humble-rclcpp-action","requires":[],"size":75871,"version":"16.0.2","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87078c7366ccc1cb257dc8788b5fc8dfc87f2a61388a069577759d4e1911f553"},"ros-humble-rclcpp-action-16.0.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749181323,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"197578ec0c6e9ea7fa7e75094dc3bd6f","name":"ros-humble-rclcpp-action","requires":[],"size":76186,"version":"16.0.3","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"626f8b30792d5fcf1c3b194b4e929a8630032bafd3bb9c0e6d9f9ef259476d3f"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820776042,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d2fc7e7fd185f84dbae46e9bdb2ea28f","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":11807,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5fa82963b4646fd520556e3020172db77adce3fa03d436919729bedb8331c0f"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749220803,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a4ec27fc4bff6c0fafbdd37caa93536b","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":11686,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcfaad16ebc49f3a03a8f4d16c009f4ba8f9ec837c07f1c6a16a7a47898cb526"},"ros-humble-laser-geometry-2.4.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819778092,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7e2da46f992bc3d7ec033ae88f189c30","name":"ros-humble-laser-geometry","requires":[],"size":35212,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f31934e678b5dcc10a0a90ff4cc4440d132cb19d48564481abe4c8bdfc25991e"},"ros-humble-laser-geometry-2.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748445114,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d38a6e65f894da829f1ad905b16a6993","name":"ros-humble-laser-geometry","requires":[],"size":35531,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9e72983630a10d2ca38b66e5a131b5c95a72f823fd09c8db8c123fa1b880f97"},"ros-humble-rclcpp-components-16.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819760938,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a701e3a992360ee76287fb0fbe18d055","name":"ros-humble-rclcpp-components","requires":[],"size":95359,"version":"16.0.2","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f96067157b84c51769b8bdc555fe8b01fb2626fcc1c24fe0a145e1e05d1e2fef"},"ros-humble-rclcpp-components-16.0.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748966795,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0e45b3185e4df84c4a294f5a58d168d7","name":"ros-humble-rclcpp-components","requires":[],"size":95567,"version":"16.0.3","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8e20141b09d4c5edaf877831dd3d5f4646a8f40410efdd6bdf078e332e4d27e"},"ros-humble-intra-process-demo-0.20.2-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670820607289,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b205b1d0759a0afa9b5b97ac0e2e78eb","name":"ros-humble-intra-process-demo","requires":[],"size":726987,"version":"0.20.2","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20c0e46077bd17fb018f0454a97af975da1af1c87dd2d96e25ee15da16fd5414"},"ros-humble-intra-process-demo-0.20.3-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675749035457,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"47c838a9d0e07bed246871c0e079cd97","name":"ros-humble-intra-process-demo","requires":[],"size":722209,"version":"0.20.3","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86db7060cf4baa591a2332a1f2435a542f80a5c2ae4223e8abf45f693ca84a3d"},"ros-humble-urdfdom-py-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819643563,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cbf5e615e9f3630ddbf6dfb9089f436c","name":"ros-humble-urdfdom-py","requires":[],"size":34612,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b54b9c5a8ff6fe3f5f4a85f0607cdc658c715b87dbca50ace65f82c249145f35"},"ros-humble-urdfdom-py-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748293322,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"76af9ec061ff123c65380a907120d0a4","name":"ros-humble-urdfdom-py","requires":[],"size":34197,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0691c2e68a8716ed78775c59541d66a22807a1f9fc932a7362fb0c5261f05c85"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820691906,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c65beb32b2558ffc9b42d790db959000","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":12463,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"313f94c065331ca5f3f3203357cdbc2060ea1ac4b529ee12c6e75eae86063373"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749133699,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8d40e5cf07fb5f7a4ff15b9e6d262c25","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":12314,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d4ef1f316f1638e1590fc0af329d34a2dc26395ca698b0120a1c6d32c79654a"},"ros-humble-geometric-shapes-2.1.3-py310h997c4fa_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h997c4fa_2","timestamp":1670820012584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"338e43e26a9174d0ec0b3e2a279e2ceb","name":"ros-humble-geometric-shapes","requires":[],"size":104320,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1b3b36fdddf7a782f1d886573e8bbd9a9dd9bf937ffd19c37464e2acd24bca3"},"ros-humble-geometric-shapes-2.1.3-py310h997c4fa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python 3.10.* *_cpython","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":"py310h997c4fa_3","timestamp":1675748677456,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ef7bde8beb4886b512dce483c9991ba9","name":"ros-humble-geometric-shapes","requires":[],"size":104648,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8e51aaa2fe1145562db2e3ec02918a0537f75c57d96370e82191eff3128c973"},"ros-humble-quality-of-service-demo-py-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819943985,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3e9928e3691f7ab429e46c598952b54a","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":23142,"version":"0.20.2","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83222e08810c0ee9a80cc8a76af8cce0d5b82a9191c4278eea56dc178a9be4de"},"ros-humble-quality-of-service-demo-py-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748558207,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dbe4ad7926899a520afe44993f46dbf8","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":22589,"version":"0.20.3","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cec2c0fe0433af292e7238904f89f6dae529c3359c6465178c4cdd7e1fd7595"},"ros-humble-camera-calibration-parsers-3.1.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820511290,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0ed00b28e3df7d30634914e188902791","name":"ros-humble-camera-calibration-parsers","requires":[],"size":67049,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9211ec56e3373451d196c0146090024de56e730642834b0002f6ee3d6af44707"},"ros-humble-camera-calibration-parsers-3.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748718181,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4f713a32661a9465fe1e10c131a94d5a","name":"ros-humble-camera-calibration-parsers","requires":[],"size":67428,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98cbeaae3b89ee0406573d58d7dd266deddeb70466a6a049bb9ad7b5989da3a2"},"ros-humble-rqt-gui-cpp-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h927cc32_2","timestamp":1670821106447,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d25ae68efced188c9eb9fbad0252f15e","name":"ros-humble-rqt-gui-cpp","requires":[],"size":112686,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b6a94a40931b01fa1724861bddc7dfe678d931e89ee11d8d8d38dba237a6b64"},"ros-humble-rqt-gui-cpp-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749351241,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bf2c5e23cbe56b29201f15bde3c4220f","name":"ros-humble-rqt-gui-cpp","requires":[],"size":113035,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"974059814b5c6b53c5d9c671120f9c7f2f7403b28abfeea30eb80482842cd6e4"},"ros-humble-filters-2.1.0-py310hec30da9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hec30da9_2","timestamp":1670820905188,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d9e00e0e336fb0e5f48da0a0967b8836","name":"ros-humble-filters","requires":[],"size":71022,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7daa17816b0bd6a9b33f8ae26ddb2c56fc3538d20d55495588851fefec6e0d12"},"ros-humble-filters-2.1.0-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_3","timestamp":1675826659852,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"84ab39e1bc6f52e727f6ecf5d6013282","name":"ros-humble-filters","requires":[],"size":71352,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"507677c74b77b349cfe705c16300f6b4ed711d62f31eca17da85c880c4f6c14f"},"ros-humble-ros-gz-sim-0.244.9-py310h56ece85_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gflags >=2.2.2,<2.3.0a0","libcxx >=14.0.6","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h56ece85_2","timestamp":1670821421403,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5903d7d7a5e3df145bc5f34353c1d731","name":"ros-humble-ros-gz-sim","requires":[],"size":178660,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b107d69365393f12d92d5b8f64c6861346535cbff6e180412938879a3f4788e"},"ros-humble-ros-gz-sim-0.244.9-py310h56ece85_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gflags >=2.2.2,<2.3.0a0","libcxx >=14.0.6","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h56ece85_3","timestamp":1675749900742,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3347f81ea3041dff4a9a91bc82bd2f84","name":"ros-humble-ros-gz-sim","requires":[],"size":176763,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c445deb7c3413ac5b89303bc3a7bb518462331d47319a9938e1d873b73d5fe2"},"ros-humble-behaviortree-cpp-v3-3.8.0-py310hfdddec2_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libcxx >=14.0.6","ncurses >=6.3,<7.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","zeromq >=4.3.4,<4.4.0a0"],"build":"py310hfdddec2_2","timestamp":1670820249354,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"41c10d9c7d82839fdaa84eb9cf9bcb44","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":321350,"version":"3.8.0","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2683b104268a023a4754bf58d9ac9fac47a760fab005637b4166cceb8d5c010f"},"ros-humble-behaviortree-cpp-v3-3.8.2-py310hfdddec2_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libcxx >=14.0.6","ncurses >=6.3,<7.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hfdddec2_3","timestamp":1675841597341,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"872d3363de66a3286f834ee4cceca973","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":332076,"version":"3.8.2","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"752b0b48a5c346eaed40585830abe4bfec7a10bb1b85c40f0d191b7e10357cbe"},"ros-humble-rqt-py-common-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820707752,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a7b8ca2f6ad3d95042ab20cc00155289","name":"ros-humble-rqt-py-common","requires":[],"size":44160,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf6f5ae4c7e64733756b4ba5c5008d8a8ff7e62efbbc1bc1f6d599ffc05f5eee"},"ros-humble-rqt-py-common-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675748499411,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1c74759c65217b847158b38988182c5c","name":"ros-humble-rqt-py-common","requires":[],"size":44573,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"843cf8e533ec536ac722d72f285e2185f98b191089a989a772ea19cfda88b1be"},"ros-humble-rsl-0.2.1-py310h68909e6_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h68909e6_2","timestamp":1670819550065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b0037b8af06c337036dbaaf2768f1076","name":"ros-humble-rsl","requires":[],"size":26017,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6eef2e87ef12f50877223ad2a68f49da4e2128f43e6ba98a78d34c1248a7223"},"ros-humble-rsl-0.2.1-py310h68909e6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h68909e6_3","timestamp":1675771874070,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d36eb1d5479de185fbf6d9702b3cc0bd","name":"ros-humble-rsl","requires":[],"size":26308,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"441f5366b5a7a541c045b81a3227c6b8db588d834a175198d5b413dbc15c0c08"},"ros-humble-launch-param-builder-0.1.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670819689878,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f82388a5b233721b42b7d4372bdff8b7","name":"ros-humble-launch-param-builder","requires":[],"size":16982,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ba2dc0fbc02714f3343b314fecc82493ff8658af61adfd824e791419ccf5d74"},"ros-humble-launch-param-builder-0.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771688020,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"411ef9305364f04ca83fcbbd820a18fd","name":"ros-humble-launch-param-builder","requires":[],"size":15964,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c53291e2163fa0ffbead00749216e7252648d7753cbd43c691cb43ce1396cc2c"},"ros-humble-rqt-gui-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820489292,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"506af053ac3494cc290eb17d2ab8ec30","name":"ros-humble-rqt-gui","requires":[],"size":107081,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb37a715bce4476e1d61f3599101becce6a1f4ee911436c02e51571d4c6e5302"},"ros-humble-rqt-gui-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826335722,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"06e339f156139e66a0e921082fc09796","name":"ros-humble-rqt-gui","requires":[],"size":106757,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"accc2077c5234fb4ab4e9a5c815e1507871a405b8a305ed145dfc160a4897929"},"ros-humble-bondcpp-3.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822819571,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1b5d1227bec07563a21c74734ebe94e2","name":"ros-humble-bondcpp","requires":[],"size":166292,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc6c682658405902643ce52bf5dd6ec9e5268a9d4e6f31a5e6f2efd8d71c42d0"},"ros-humble-bondcpp-3.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755491464,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ce32fc5da6a782430fe8610b45d71fbf","name":"ros-humble-bondcpp","requires":[],"size":165731,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80978869ecb5f789b3ae9aa6f97f3621c83562514cae39c7d67ebcb0d9126be7"},"ros-humble-tf2-ros-py-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822527812,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e9e4d6a42897993941d6a138a02301c1","name":"ros-humble-tf2-ros-py","requires":[],"size":27181,"version":"0.25.1","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a064ce5fa4464dcd0071e3e4eb5742fb6631a3f1944edb698c1d8cc81976b8c3"},"ros-humble-tf2-ros-py-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755186596,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1cd8aa0d1d589255ef674fcaaaefd53b","name":"ros-humble-tf2-ros-py","requires":[],"size":26470,"version":"0.25.2","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"866c6780b06f71b68b593aae654b2524e4772f33daae40ed8a4b904acd2994e7"},"ros-humble-nav2-common-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822618701,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b01b760d9bc93a43b1b14a0356fe3bdb","name":"ros-humble-nav2-common","requires":[],"size":20434,"version":"1.1.3","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48f013888bada550d7c021069cd4e829b6be8727341655d797b51cc52b9cb328"},"ros-humble-nav2-common-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755308358,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"55a0eccffa9dcda15190819369e6ff69","name":"ros-humble-nav2-common","requires":[],"size":20785,"version":"1.1.5","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a575fdd7ce585b603de45cb557109e858ddefd078113723b6fb99d36ce556b02"},"ros-humble-launch-testing-ros-0.19.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822432679,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"466401d1b4820bf22d93910c503ba011","name":"ros-humble-launch-testing-ros","requires":[],"size":28507,"version":"0.19.3","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1365e1c36a12b06008abbd3c4c144a130f7e05ca7d8cfcca2a00c3d5e82214be"},"ros-humble-launch-testing-ros-0.19.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755080644,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8ce0b4cca63198f25630562ba564923e","name":"ros-humble-launch-testing-ros","requires":[],"size":27508,"version":"0.19.4","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1702f52840cd95321d7dd7d18fc49dafbc72151f6893e8548d5b30fef20809ff"},"ros-humble-message-filters-4.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822339111,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b4e648ff70d9bded1c12666431816826","name":"ros-humble-message-filters","requires":[],"size":46596,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fe236da661570b4eadebc3aea9b32e74597b081c7f0aa2377e57c20a21c1657"},"ros-humble-message-filters-4.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675754969458,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c5c96f4a1143bf10c68183678ff15cb5","name":"ros-humble-message-filters","requires":[],"size":46917,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3cdf799ff6a8e84da267a4e9787d2355e59561a626a887bf4895677c78a7d64"},"ros-humble-rqt-gui-py-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823674044,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6eb7e2d6f3923730c521209a353f538e","name":"ros-humble-rqt-gui-py","requires":[],"size":14509,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5859283dbc38e375fbe4d180f10576814047606a4aa33ef19cbf008048a769d0"},"ros-humble-rqt-gui-py-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831063098,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"62c8f166dc4acd38ce929a7a8af64ac5","name":"ros-humble-rqt-gui-py","requires":[],"size":14250,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ebe0681bae0db084a0033547d2a4fe1daa28ce3a4839a970e1985976f1d1820"},"ros-humble-realtime-tools-2.4.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823328429,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b37ac0705c1cdade861efb7a99199bf9","name":"ros-humble-realtime-tools","requires":[],"size":27577,"version":"2.4.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfa93f4cac209a2e8995c0e925515de4bbb458e25f8c9a101d91a8eed4174beb"},"ros-humble-realtime-tools-2.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771604887,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8387780df0d61ca63d852beefd7e743e","name":"ros-humble-realtime-tools","requires":[],"size":28413,"version":"2.5.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78ea09b75addae6ad52d950251d5c133a75c4dfcadf886af70610dd47d9587e1"},"ros-humble-camera-info-manager-3.1.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823960400,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b13df8abcb13b0dc9d7ae207cee486a0","name":"ros-humble-camera-info-manager","requires":[],"size":45770,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"948fecbcacb5f49f51fc09f1331022a3c4c17de886705d01dd35d8725c59d345"},"ros-humble-camera-info-manager-3.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755662273,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"41b29e92e629fbdf3ff43d3f1a1ecfcb","name":"ros-humble-camera-info-manager","requires":[],"size":46132,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"760e3b267bbdebea81db38c3fee7d60d478cf4b161a7df6730d37b0558300f38"},"ros-humble-ros2multicast-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823797472,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5d00982cf2716231bd001a056b753c6a","name":"ros-humble-ros2multicast","requires":[],"size":14390,"version":"0.18.4","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03d1c210b8c3585bd64114db1417ab130bf8cd8b533e6a604f5f3849574bb81d"},"ros-humble-ros2multicast-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675755514308,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ddd4cc2a240ea07809d265d12cf2f98d","name":"ros-humble-ros2multicast","requires":[],"size":13910,"version":"0.18.5","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fade8c0e1fda74b37dc148e7f0357165b96e25426d25c50e28915dd26684f07f"},"ros-humble-ros2lifecycle-test-fixtures-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823499600,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a9339f5e66e4217800b9280b797d8e8d","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":19420,"version":"0.18.4","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8a1f86339473a23df5427a2d36e2b7d8e6ec94ed69df7858f6a5aafe1914159"},"ros-humble-ros2lifecycle-test-fixtures-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755407963,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a7ab2eaa9fa373ad9a5882f2d941d9ad","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":19693,"version":"0.18.5","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f03865392aae4a512f27d03d2dbfda1ff8471b4a3a5ca3c97ed333ec9b39f846"},"ros-humble-parameter-traits-0.3.0-py310h68909e6_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h68909e6_2","timestamp":1670822909624,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f5d88d761e86fd8668aab3df37adf2ef","name":"ros-humble-parameter-traits","requires":[],"size":15447,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ca6ec910143fb9f0c62eb11d9bf242570ea8af3c5c910d0fa42828e31f5b0fa"},"ros-humble-parameter-traits-0.3.0-py310h68909e6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h68909e6_3","timestamp":1675826040720,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7fac2856148ba9871f2972db6a0cac68","name":"ros-humble-parameter-traits","requires":[],"size":15672,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f28643a5a0c363d5a9433e51b0d698d11498e2062e23cb7715addf231e287e99"},"ros-humble-rosbag2-storage-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822265940,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4f9e194336871e8ffddad83824d50ca4","name":"ros-humble-rosbag2-storage","requires":[],"size":161107,"version":"0.15.3","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f24148a65d657a35d988e0b4b735f43dca65aa00f0d7fd362a3ff4773f6f96f"},"ros-humble-rosbag2-storage-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772165581,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"05d90c66ea93082a5b87033e33eda527","name":"ros-humble-rosbag2-storage","requires":[],"size":160023,"version":"0.15.4","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02782e8b56ad3051f8bd8d2aecc51c96661dc69489634f6d5589178ac9a65c4c"},"ros-humble-srdfdom-2.0.4-py310h39e66c4_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h39e66c4_2","timestamp":1670822611779,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"da8225d5532bdfb197d7338e423d0610","name":"ros-humble-srdfdom","requires":[],"size":78681,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f3a7490912dfaaa06707483340f5cda121608082104b92da67b3b082d7cdcc8"},"ros-humble-srdfdom-2.0.4-py310h39e66c4_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h39e66c4_3","timestamp":1675771705625,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"edca9bb60c26ead0dbba087901c9a519","name":"ros-humble-srdfdom","requires":[],"size":79046,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"400af8cccafef179f9aa48e354b86dca12cdb63ef98eef23a4028b5d6e802822"},"ros-humble-diagnostic-updater-3.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822431222,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"29b23acad5ef5bb5c1b0af356e9ea828","name":"ros-humble-diagnostic-updater","requires":[],"size":125035,"version":"3.0.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d41971f9c671c66a3b920a3bcc23abf0460d6f5b33a96c095706f5575fb69af7"},"ros-humble-diagnostic-updater-3.1.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772327242,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e2691959ba995572f8e77e56dfa6f2ef","name":"ros-humble-diagnostic-updater","requires":[],"size":128277,"version":"3.1.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a1b35db4db6336f1d2bef8c744362831c32fc6a6506d0d10da0e9fa065b0f9b"},"ros-humble-hardware-interface-2.18.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822794979,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"706d75ea4c2cd2217e2a9544251f47e0","name":"ros-humble-hardware-interface","requires":[],"size":215006,"version":"2.18.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4f54fe2e1284028b33a68be70f67bb3c053eea6e97b9d0310db06dec831f900"},"ros-humble-hardware-interface-2.22.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771358650,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"762d5b46c0722f9b62bb3539c0577b7f","name":"ros-humble-hardware-interface","requires":[],"size":216748,"version":"2.22.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d899781083eb2d5ca38afcc865d4288d0ddfb19da78859df54b2137deaf752d3"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","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":"py310h927cc32_2","timestamp":1670823108560,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"25fade5a9c59fae792c9f91ee271f369","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":140099,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6bbcb46907296f11cd0fa9fc4c66a100075e8f0b263668706b02b2dba0ccfc98"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756131702,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f09837092e3bb7af45b8c987fa939997","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":140267,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cfe61130e1a35c5db359165b9ef3cb2cec243aafa04ad408559d345393309b0"},"ros-humble-action-tutorials-cpp-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823711956,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3decd62e5d5149a995bf05656c594ef8","name":"ros-humble-action-tutorials-cpp","requires":[],"size":87847,"version":"0.20.2","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85556d2adbd6aefc17b0b29379c37f0f6e3d4948a0c094652c38f1a7726209ce"},"ros-humble-action-tutorials-cpp-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755968992,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8d23b90504fb65fdd5c3ac66654b4d4e","name":"ros-humble-action-tutorials-cpp","requires":[],"size":88136,"version":"0.20.3","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"744091dfae908637336c1a2e28967116d0ca5dab93241399d5e1caefd0275ba1"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823252878,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f210069bddb43e12527d596fe2ce2190","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":101107,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45398868cec22ecd5ec8c7e30e9ca98f90e9aec6b7ffeefa1cb8944c06a281e3"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756475559,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a766266deed6555afe2a871fab77f81f","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":101455,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5d6ddcf693999cac803877d5384bb3a03fbf284b7435db898b290972545cc0b"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823288236,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c3f9016d7fc8a06bd7429a614dedbaed","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":55248,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c80d371fff61ced9d05718b51adea3cf914c38dacd30fda12c3fc1917b2752b0"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756299349,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e7bf7924b80ea1ca812520b8e3af75b3","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":55461,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3770a071b4e2c7af782c42a7a71a9e3d29461aecfd7ed223045a9dab8543e400"},"ros-humble-depthimage-to-laserscan-2.5.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670823526308,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8fefb50008f91ecd98b120fcfe2eac7f","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":193480,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d21b9ada6624a40e1f682033c85531352680cfffd35646333b259afd5b52422"},"ros-humble-depthimage-to-laserscan-2.5.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675756732923,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a1b91ffe7d300af9fa7ddcaf2a6a1f4","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":192141,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4c8ed8bccb157f0ac2a8eedc68b6d59a6626df6d0ae55149e0d04aa7b26ad87"},"ros-humble-rosbridge-msgs-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670808721668,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"38df448c64ca5e2ac4e06d568984c695","name":"ros-humble-rosbridge-msgs","requires":[],"size":60553,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"118f91affe24fb941bfa5d419d243549fd8edf613629e0bba80db348208bcd26"},"ros-humble-rosbridge-msgs-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675737061908,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74cf8ab58bfa4a678f8381ad4a2f5f21","name":"ros-humble-rosbridge-msgs","requires":[],"size":61008,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"416eb9e56f07a7990dd16155d38566ec0f74d7030e9f4fee930af7f749c287ed"},"ros-humble-joint-limits-2.31.0-py310h927cc32_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"osx-arm64","timestamp":1694673268205,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py310h927cc32_3","md5":"cfe7c1feeffb1c3cd938925fbf6dc86d","name":"ros-humble-joint-limits","requires":[],"size":17373,"version":"2.31.0","binstar":{"package_id":"63928b25d9a997aae729c4ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36cc674c8db8208d059325da327cb55a74a7bd4fba63eb40dea98fd6a9939187"},"ros-humble-joy-3.1.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823676378,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dbb0cc06a0d6b232504622e7044c6831","name":"ros-humble-joy","requires":[],"size":164732,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"680fccc91a78d374d95201c427e0ffe6977a671c961fe709c9384e3a7dcfaa22"},"ros-humble-joy-3.1.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755940097,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"603552f53fbc48f0fc82b626bdab0e86","name":"ros-humble-joy","requires":[],"size":166034,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40855bcad3770ef11775e5f8310f2a79782f9df0eeaace5ad9df3ba828d3fb53"},"ros-humble-rosapi-msgs-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670811610097,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"40bc157bfdbc7acb6536ca0207a6c20c","name":"ros-humble-rosapi-msgs","requires":[],"size":319879,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e2ab24f5ec38ea5d07d73f3986ab2cd2fa0acf7ac7b69bb872278a8d09c0ea1"},"ros-humble-rosapi-msgs-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675739306137,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b8408d1ff6a929e78a0ca69274796d81","name":"ros-humble-rosapi-msgs","requires":[],"size":339356,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"992cde8a7b9914604fd0f5b1a0df54adbde4f584d7181da887e6d6acdc7e9d3e"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670820731207,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b043dcd9169e9d2b29da9e5bfd513ec1","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":239850,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b17b382bd9c32e4fabadd057e7999e620fa198cf2aca32d7922464dac6fe6406"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675749038674,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dd3f04bec58c3b26294bf03d428b9ac7","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":233581,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab97ec69cdde0004dfe06586af4d8d13ee70cb53d73524e2228f38302e3aa06a"},"ros-humble-turtlesim-1.4.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h927cc32_2","timestamp":1670824396927,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c53714331cba7d637c132f811ac0471","name":"ros-humble-turtlesim","requires":[],"size":719860,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4109587ecb97219d0b2b23486958245e77bd2c0da65a881cd26f4b238d892bc7"},"ros-humble-turtlesim-1.4.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756730498,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a9c2ea12df6850e6b145db84cfb7fe0a","name":"ros-humble-turtlesim","requires":[],"size":702233,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"399767171456dec468d04cec10b80219d81d2f5912db0c573e8d05e77641e7e2"},"ros-humble-topic-monitor-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822284836,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c76a78d09a68755033964b926917e1e","name":"ros-humble-topic-monitor","requires":[],"size":23914,"version":"0.20.2","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17ba56eb5445bd308dc77a7bbd98a17b591150261b787d864bef8f9e962a27b7"},"ros-humble-topic-monitor-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756841406,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a1e53d2d97c60133ac1913355e49299f","name":"ros-humble-topic-monitor","requires":[],"size":23563,"version":"0.20.3","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6de3a408cf8638e5f865bb19d503813fe1a9baa76bf07d93cb61ace864af1cbc"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","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":"py310h927cc32_2","timestamp":1670822916350,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ba50fd8df22a0bd429eaf5dc3a56513e","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":905975,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"993124807e177ed583655fe4f8f26e6b5c2148354a28c6aaf352061bc3e1bc96"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675755939451,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3208f6a79d390726ddf86ab89148586a","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":896058,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"686b4b188036250657597dc084319be4c6386d280c96f22726d4811c4ff754b2"},"ros-humble-quality-of-service-demo-cpp-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670822650144,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"663e393ee96ff5d5a0479c8ec020c4ae","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1016291,"version":"0.20.2","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df3dd68b4c5a26a3073256c24e8108b8d3a11c4bb760a63bedeac510ce5481e1"},"ros-humble-quality-of-service-demo-cpp-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675757189604,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fc1a850c5473f6a5cf5f667a296bf253","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1000931,"version":"0.20.3","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"983a1e4e892b4401833f23bba712ce8249e361cb3757acd4348e4b0fa020fe81"},"ros-humble-rqt-graph-1.3.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826717386,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5347fc1b6e05170975bf3a4aeb988876","name":"ros-humble-rqt-graph","requires":[],"size":48340,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bde797930c25274bd54355b5292cfaef2634de95f573a1dfc21d77cdce49df8"},"ros-humble-rqt-graph-1.3.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841477767,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c387d4353513a20b071949fe720a2cf0","name":"ros-humble-rqt-graph","requires":[],"size":47837,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79102783462a180658a670f55b6dddc6a1226ff28dde642f8a85ab372683a30b"},"ros-humble-rqt-publisher-1.5.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826627561,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83e0e52868e1b08f0d26a1f47ea47cc3","name":"ros-humble-rqt-publisher","requires":[],"size":28241,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3495072a4ef7ce5f71c9c8d36c6fd6c6a0abff9c04d0f2e1e8a0d12e64b1ba8"},"ros-humble-rqt-publisher-1.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841383480,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"215498d973c047dead86bccc3d860a9d","name":"ros-humble-rqt-publisher","requires":[],"size":27694,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77c52cc591f5472fc728e5edbe1161124741029a84137186e1d548eec59d21c8"},"ros-humble-rqt-py-console-1.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826554757,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"48cedf9a41e5e9dcfe1b686cb8d04b39","name":"ros-humble-rqt-py-console","requires":[],"size":17327,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb81d07b50f4fe5272593fbbfd1df0296a4e7cd478327367870e724a3558d2a2"},"ros-humble-rqt-py-console-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841572424,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d337885e8931c3e0c728e1ce20440544","name":"ros-humble-rqt-py-console","requires":[],"size":16834,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b061763c2dd8316e8eddef25eeb9b48ac3d24f62c9ad2f1574c19d4b7a65f58"},"ros-humble-rqt-shell-1.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826788471,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9906b46149b8f03ac740124c54ebd0ba","name":"ros-humble-rqt-shell","requires":[],"size":20431,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1ee1b01a68667a3a238eaf5283c65cf57ddb3b639aaf527b4247989c31bebb3"},"ros-humble-rqt-shell-1.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841353490,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6768b8f8d319be0fb70755d1af94a2b3","name":"ros-humble-rqt-shell","requires":[],"size":19940,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8625ec797c424b46c77ae724e050f5490e44d1f8e2172f03adcefa7000753c31"},"ros-humble-rqt-service-caller-1.0.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826481462,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6fa28ea7a4d72532d41bac3ed81c10f","name":"ros-humble-rqt-service-caller","requires":[],"size":21755,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc70ae96da57f327d72f8715fea09b4918f73992b7c700389d6e07abf882a2bf"},"ros-humble-rqt-service-caller-1.0.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841461539,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3ea8f005b564cda48f3fb062299bd8f4","name":"ros-humble-rqt-service-caller","requires":[],"size":21437,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3678dcb24ebe6a60e497f084867c726cfd3b23465be536b7fd4eeae00aaf31c7"},"ros-humble-ros2test-0.4.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825870760,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"615001612600561d1e9fbc73df39dbfe","name":"ros-humble-ros2test","requires":[],"size":11196,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d74b1135c7429e8790d16933d346815c3b6987de9d5f59ae4cd28ac780157765"},"ros-humble-ros2test-0.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771464048,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e9ac9b165b15075e348e98bb751fae44","name":"ros-humble-ros2test","requires":[],"size":10902,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecc8f55f46601d59c2275cb3cc7d69a3718ae1b2717cda11883a57e04106a5aa"},"ros-humble-ros2node-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825752730,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bb028d2448623e1a827cc89e80dba1ef","name":"ros-humble-ros2node","requires":[],"size":17527,"version":"0.18.4","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e44a23cab5dda63af7ed439aec223e3bb583f93dce6a17191e285e0cffb5fd0d"},"ros-humble-ros2node-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675771178906,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"147b19c341b703143c482021617ea28b","name":"ros-humble-ros2node","requires":[],"size":16978,"version":"0.18.5","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"295781a304056655c1d1b1169c8e21626d8a1b954dc51687667cbd7edf196d5a"},"ros-humble-ros2service-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825639283,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2c0ac383fd3649bfe85a59ea7625acd6","name":"ros-humble-ros2service","requires":[],"size":18718,"version":"0.18.4","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48ea74b6d1851458dcb43cbbf45ca6560fab5715536a44a263248b2383168089"},"ros-humble-ros2service-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772098682,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"511dafcdf86e2bf958f99b751fb55303","name":"ros-humble-ros2service","requires":[],"size":18102,"version":"0.18.5","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c37cc96c56a74e8252cee91b739ef7b8436bff69dcad73f40e5ae29e30128767"},"ros-humble-ros2pkg-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["catkin_pkg","empy","importlib_resources","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825547036,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9040729d9dda9ba96c8760bf732acbd1","name":"ros-humble-ros2pkg","requires":[],"size":29818,"version":"0.18.4","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62f6dfb031605d61b51cb766867596ca434d2e274f277eeda9a6bcc36cb1a1c2"},"ros-humble-ros2pkg-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["catkin_pkg","empy","importlib_resources","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771985809,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc1ed87485bcc90d1e39bc14f1f71ad1","name":"ros-humble-ros2pkg","requires":[],"size":28173,"version":"0.18.5","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8eb6a3c70554c9901055f850c6d6387f25e8d1c854584e87d91173ab83e2a91d"},"ros-humble-controller-interface-2.18.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826059391,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"50ac9a1139708fffcd71545be741ec04","name":"ros-humble-controller-interface","requires":[],"size":35288,"version":"2.18.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38723d58fe9e2c6610dc13aa3ab1e180e09beee542d7e0d6bb9d93ae90f6d466"},"ros-humble-controller-interface-2.22.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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"],"build":"py310h927cc32_3","timestamp":1675831869186,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8f82d3cd7727039ca6d88ef26d03974d","name":"ros-humble-controller-interface","requires":[],"size":35522,"version":"2.22.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02e25f9aa3da224a4aaa90e104676ec5955209f3699fd4b2a230f578ccb84dec"},"ros-humble-pcl-conversions-2.4.0-py310h9401cb5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h9401cb5_2","timestamp":1670826446455,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d9a0d2ee9d2e5cea2913b7c5af485beb","name":"ros-humble-pcl-conversions","requires":[],"size":20289,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2be5626afa06ab5e2cb871d86c40a6c925ebd33c6c0731769e790786353cd66d"},"ros-humble-pcl-conversions-2.4.0-py310h9401cb5_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.10.* *_cpython","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":"py310h9401cb5_3","timestamp":1675772191617,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f9068166afc2483ba49352728696272","name":"ros-humble-pcl-conversions","requires":[],"size":20544,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5b216095034bdfa82b69715364a1c0035b72827a40fb4c85e2abcbc1f5610c0"},"ros-humble-tf2-tools-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["graphviz","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826560375,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"50b53bbe725368bbcf1be85802e14400","name":"ros-humble-tf2-tools","requires":[],"size":14031,"version":"0.25.1","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d50e4188b43d783af5916d12bdedb96845d321a685daf0a8952ad2739be915d"},"ros-humble-tf2-tools-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["graphviz","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772302572,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"db8193c7a0f80f43458115135f00c19f","name":"ros-humble-tf2-tools","requires":[],"size":13888,"version":"0.25.2","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0f46c9bc08867c31feab771c51d323f5d08030e74f885239a7d43b26b5500b5"},"ros-humble-rqt-console-2.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826206841,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b8b57735923ce6db24c0ce0d778271d8","name":"ros-humble-rqt-console","requires":[],"size":58094,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7698d62e57456442ee19d6e53c4cc1080c8d0268d9c30f3729c92f968e89c422"},"ros-humble-rqt-console-2.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842476163,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0259e101ab3ce7860e4a8eb44cd8c7e","name":"ros-humble-rqt-console","requires":[],"size":56291,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03520915398c196c11ef6ea7ceed9c5b16518c47881494cd0d8afd1ba9ecb8a4"},"ros-humble-ros2doctor-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["catkin_pkg","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","psutil","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","rosdistro"],"build":"py310h927cc32_2","timestamp":1670825974318,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"91979caaabe9ea3e55aac4411df26be3","name":"ros-humble-ros2doctor","requires":[],"size":35506,"version":"0.18.4","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"964e98c2c1ac6ff2686351eadfe85aa1d8de71fdc7a0d7ccd68390e523fd5d1a"},"ros-humble-ros2doctor-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["catkin_pkg","importlib-metadata","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","psutil","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771816316,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae924bc2527086a5a47c931fa6c150a3","name":"ros-humble-ros2doctor","requires":[],"size":34683,"version":"0.18.5","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e946f1a09382774c000b16f72682fc991c9069e4c31f2e4ac386e200d08f8d8"},"ros-humble-ros2action-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826096354,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b1bb473e8a50282b898d46432976137f","name":"ros-humble-ros2action","requires":[],"size":19566,"version":"0.18.4","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67c361339fab50ee3dc705c88159abd1302a289a6e6bfae1f4385a1814cd4ec7"},"ros-humble-ros2action-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771933115,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8246dd7107aed9793ed02bbe67a86479","name":"ros-humble-ros2action","requires":[],"size":18977,"version":"0.18.5","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb75cbb1cf3a0bb9a98856e6c8151938137fca6cacab75a58d0fff7467c475c4"},"ros-humble-rqt-plot-1.1.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","matplotlib-base","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826194803,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8480b97c2622859939da80a722243211","name":"ros-humble-rqt-plot","requires":[],"size":47785,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5d7e8a103eb9f6ab9241b303cde20bd6cfc65f9875f5a383de8098c0e227125"},"ros-humble-rqt-plot-1.1.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","matplotlib-base","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841139376,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2236c4b23f3c79fdf77598dfe4cc98ef","name":"ros-humble-rqt-plot","requires":[],"size":47189,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4adb968b950edcd4ce22a6a7b79225afb5c9a986e0b7faa24a157a9bf9cc552b"},"ros-humble-rqt-topic-1.5.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826304151,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7d8a1eea3585aa5e9a345388a48fd7ff","name":"ros-humble-rqt-topic","requires":[],"size":25222,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e542e2207f6694cc5ba1c8c08972fa1b135b965b89c46e31f4e3b6336d4eaea"},"ros-humble-rqt-topic-1.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841246960,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f4eaacba67be5beece60548a5e5d5447","name":"ros-humble-rqt-topic","requires":[],"size":24836,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e4b8a5af9901f6647c6922c6e7bead1130c5db92c363c7122270b0169006394"},"ros-humble-camera-calibration-3.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826695272,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fcaefb4f898618c532c868e46d9e126a","name":"ros-humble-camera-calibration","requires":[],"size":58355,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6af80bbc7aa66693b954c6175ae184e2d9cf1b7c74a9dbe1a46f63d4826db35"},"ros-humble-camera-calibration-3.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772107373,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"56b49391deda2556b19fe3dc3428d949","name":"ros-humble-camera-calibration","requires":[],"size":58002,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3285e43748eaba607ba710c5ead78b16141792d33a10e14dd5b39218c26054a"},"ros-humble-teleop-twist-joy-2.4.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826513767,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90aa057afa5ca958d61ed759c39d6f61","name":"ros-humble-teleop-twist-joy","requires":[],"size":157797,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf294da08ec7e5c828f789e5c0590425a9c0d25523468f86cb63b9b0ea89d033"},"ros-humble-teleop-twist-joy-2.4.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772525139,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f541fa5453d1cac9a36a07ba77f73631","name":"ros-humble-teleop-twist-joy","requires":[],"size":158214,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d708bcf4b112af6c508115df20910c4a7655a40b3c8124dc5fce11dcd4b02d62"},"ros-humble-control-toolbox-2.1.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826117820,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2864e36c66522ec5d2c294f267366ff2","name":"ros-humble-control-toolbox","requires":[],"size":84366,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"353fce16114cb7991d0283c6bfa76df388f87bfa4a8319e12c27b0d1bd868d4f"},"ros-humble-control-toolbox-2.1.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826159913,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a230eb6cb0d9144048057953a38fa3d9","name":"ros-humble-control-toolbox","requires":[],"size":84574,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b58a850ef22b85d959b97839d1e615389a84c0cd7ccb490a9009f29c70fc142b"},"ros-humble-generate-parameter-library-0.3.0-py310h68909e6_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h68909e6_2","timestamp":1670825595760,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4dfd64dacb0b38df1280798af366ebc4","name":"ros-humble-generate-parameter-library","requires":[],"size":14024,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"944add676b27eb6feaa491e1dbf72f04a7f9002a26d2b72d5c0a9313cc2cd63f"},"ros-humble-generate-parameter-library-0.3.0-py310h68909e6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["fmt >=9.1.0,<10.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h68909e6_3","timestamp":1675841814703,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0d7f8280b1290d56c2f8115fe1427b2c","name":"ros-humble-generate-parameter-library","requires":[],"size":14304,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f19c36897cc3dc934af65cc2c300353165e60795949ad1b17899ba443c7fd494"},"ros-humble-moveit-configs-utils-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825977145,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"581d2a368b1c5798f83ae74e742c500c","name":"ros-humble-moveit-configs-utils","requires":[],"size":25927,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35a80e8e56269c0fcba18dceebdcc1abaf5f7f84c888f83fe2cd0b1914fad2f0"},"ros-humble-moveit-configs-utils-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675830645366,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"84a6dcb284c479cea7160ac13b5f60c1","name":"ros-humble-moveit-configs-utils","requires":[],"size":25275,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"326a25228ca37344be77fc6a6a77d3ce061e11e5c8988e8363273cd352828391"},"ros-humble-ros2interface-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826236323,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6826a9cb21b80725f1894fecaec41fd1","name":"ros-humble-ros2interface","requires":[],"size":19841,"version":"0.18.4","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fbb47514e76e46a27d2b76ce52f0012e8c413a36a0a3bf1432862621e06e25e"},"ros-humble-ros2interface-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826801009,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1d3cf77f835aca7222781757f2b2592f","name":"ros-humble-ros2interface","requires":[],"size":19183,"version":"0.18.5","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fe186efbfb3b7d8362905ac8e2844a9f2f72bd0af5ff121af80e6e4484ee081"},"ros-humble-image-transport-3.1.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825882576,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e5fba279a2214dd480f368489d51f4e","name":"ros-humble-image-transport","requires":[],"size":518402,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a64fe0bfac2df7839089546ad5ce3a3c725741c4787eb4257bc52b6b4129134"},"ros-humble-image-transport-3.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841189828,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cc122ac3d0681261284535fc18e87844","name":"ros-humble-image-transport","requires":[],"size":528637,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98f0beb15476cbf47ddeb2813750e8511bef451a387408a0f84e61fcc1b57395"},"ros-humble-tf2-ros-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825248524,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3adec25a12adc26ea9258de96c240e42","name":"ros-humble-tf2-ros","requires":[],"size":408584,"version":"0.25.1","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e2cb6a83c9d2c2c5ca855d6870ab60eee1b1406385eac8acbe2f8ea8f0df368"},"ros-humble-tf2-ros-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771502199,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0e603ec6c80431f60580cfbe678db1d7","name":"ros-humble-tf2-ros","requires":[],"size":407301,"version":"0.25.2","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58007f1e233bce8074eda32eeab61edda967fae43f9ea3c53654345c388c0c61"},"ros-humble-nav2-msgs-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825711668,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e3c1c7a296dd1e530a658400400ddcf4","name":"ros-humble-nav2-msgs","requires":[],"size":728842,"version":"1.1.3","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d1fad13bbed3b68d8eb8628eee582f237528b014a0881ee4119f698bd78214b"},"ros-humble-nav2-msgs-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771987641,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"32d3a9b38131d123c766ed688b3d89eb","name":"ros-humble-nav2-msgs","requires":[],"size":728191,"version":"1.1.5","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feb49bc969897ff82bca3a85029f32ba5707f7532ed13c96b51131800c62084c"},"ros-humble-ros2topic-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825377459,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"721a9765cb5d0241853ef6a00391451d","name":"ros-humble-ros2topic","requires":[],"size":40734,"version":"0.18.4","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d45d14e2324a91a1d3d00d2ac7e7d205797131f28da7a19617a3480223673b92"},"ros-humble-ros2topic-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675771626362,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"21e00c992736a600eba677995b768d8c","name":"ros-humble-ros2topic","requires":[],"size":40029,"version":"0.18.5","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78aece298b0445194b062c153f1b145773ef1de243f41a91ee3386ae1f878669"},"ros-humble-rosbag2-storage-default-plugins-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670825853357,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dcd369eb4cc02f1ea548bed136c9aa29","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":81036,"version":"0.15.3","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aac3356893f3660fad042a5ce79b9d2df6e178a92ecfcae3e7746e6b370fe6b3"},"ros-humble-rosbag2-storage-default-plugins-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826330118,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d0e8a0b97531f1f2a2eca545885bcade","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":83397,"version":"0.15.4","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec029cd5c4b952f50f9bad5a2ffed2e35abb0649e5d7bd29df7b897d120df407"},"ros-humble-nav2-voxel-grid-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826011108,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74c9f6a710c3dd1bfd5a3c661bba3063","name":"ros-humble-nav2-voxel-grid","requires":[],"size":25546,"version":"1.1.3","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"535d63ad5a99b0a08849289dd23715caedaa1e94ea4ce274f79af1cf482d44cf"},"ros-humble-nav2-voxel-grid-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675771519478,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"623b455a8912d77176bc491b8f943328","name":"ros-humble-nav2-voxel-grid","requires":[],"size":25829,"version":"1.1.5","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9dc06449f72720ed18b0a4293422d5a7bba9d765d377896d5f074617272646dd"},"ros-humble-composition-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670827567197,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9aaea1b7e89fcd362ecd717a08134df6","name":"ros-humble-composition","requires":[],"size":322728,"version":"0.20.2","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9c3cb723e27066c12e44e1493e2ba8b03f8cc1f4834f2ed11e7e7c86464150d"},"ros-humble-composition-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675773099752,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9969e3074c88df5ccc985f3a176dccd2","name":"ros-humble-composition","requires":[],"size":321430,"version":"0.20.3","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"190472413f4d8ba6e9e7accf8ae7b9fcd18aa656aace77b3e19ee5e50e73d617"},"ros-humble-logging-demo-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826483128,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"553afa61cba90a5a54e4438cd4996bb9","name":"ros-humble-logging-demo","requires":[],"size":138321,"version":"0.20.2","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b67823640a3116f9d9009d019265c9e04c7fd358e35c9c1153ea9438f0971fc1"},"ros-humble-logging-demo-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772510534,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a0230ad4b23367e960a7f3a774007ce0","name":"ros-humble-logging-demo","requires":[],"size":138786,"version":"0.20.3","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71f8c914c5a85750429405c49850d4bcf094ffbd7f949fa7f8af7e07bf27332e"},"ros-humble-image-tools-0.20.2-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670826735379,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"02f6d2298f90c46d191a415532830742","name":"ros-humble-image-tools","requires":[],"size":241393,"version":"0.20.2","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"534a7e8216ec181cbb7732517e0605b1001809a5f32a1c8abb46f29629d36b0d"},"ros-humble-image-tools-0.20.3-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675772779086,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8acbd8ec00108ce2af67fdf64d032201","name":"ros-humble-image-tools","requires":[],"size":235313,"version":"0.20.3","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"987b3b67d7f349724a309bd2ce2b44ed72f79ed024370a40e60c26dec7a94a48"},"ros-humble-demo-nodes-cpp-native-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670826925967,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b4885df0b12876e257d35a64bbfcb060","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":83984,"version":"0.20.2","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73efaf94cc46fb45f801c467d7048bc76fa2c8dc44b7486dfe8c3bcaf2d20f88"},"ros-humble-demo-nodes-cpp-native-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772960137,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1ffdb9668993329f6452120fca1388a5","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":84156,"version":"0.20.3","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48b2cce9ee71ac84a8df747cafd0a561f676be5d928a6fd98b5b5bdd5cd85ba3"},"ros-humble-demo-nodes-cpp-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670827354980,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"492592eaf5643961e8de04e78cd2b9f0","name":"ros-humble-demo-nodes-cpp","requires":[],"size":867120,"version":"0.20.2","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12c2495f69c2fce09092b47f56108eb55b386268c5b9d577f754e3a4ceff00b1"},"ros-humble-demo-nodes-cpp-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772899153,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"414649263d7f1d5719a5aab49ce99023","name":"ros-humble-demo-nodes-cpp","requires":[],"size":864324,"version":"0.20.3","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d40408804c24bed784e166e952e7b8f452d6d8a538f0bb1ff53232197b464862"},"ros-humble-rosbridge-library-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pymongo","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670823501031,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ebd218cf9274b927638cf5cbfe04fe7c","name":"ros-humble-rosbridge-library","requires":[],"size":73607,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52b920e7bcce1ec012d965a689b7479a2cdeca3661966b11aa22f5fa53d75143"},"ros-humble-rosbridge-library-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pymongo","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756470668,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f4baeb29e420c28271a8ed747b4b52e0","name":"ros-humble-rosbridge-library","requires":[],"size":73933,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87f1a47ad567870a52c526e11a18e205524c7524a48108017a352459e6a2b2e2"},"ros-humble-ros2run-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828853436,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"310329ed3642239592434e264c93bfbd","name":"ros-humble-ros2run","requires":[],"size":13992,"version":"0.18.4","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbcedc7abae47e5de8502730b4a710c39a3f2bc690c02ed044cf889ba73e4917"},"ros-humble-ros2run-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826173888,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74ffba646eacb27c4b41e53f6074b56b","name":"ros-humble-ros2run","requires":[],"size":13636,"version":"0.18.5","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"499423f9d61cd6f0cee4dbe72da8caa68c704124a5788adc5dac85ca1aea5a99"},"ros-humble-tf2-eigen-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828448370,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"380abc1c84f95918fec9c8f4ccb1083d","name":"ros-humble-tf2-eigen","requires":[],"size":18843,"version":"0.25.1","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ce9ba39450c29186685a3f0727ead8418b4ca30af7d5f42f90d316445bfd460"},"ros-humble-tf2-eigen-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675825892343,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f2b648f2319f50b0b7808e427a10b89c","name":"ros-humble-tf2-eigen","requires":[],"size":19098,"version":"0.25.2","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5204b398d4fbadc6f085b3adbe1708f3787f83c567a2ee06935aa98e7e41a20"},"ros-humble-robot-state-publisher-3.0.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828359762,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9b37d7f68ef89cb5f9c60340b50c5628","name":"ros-humble-robot-state-publisher","requires":[],"size":220619,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f924e99c8063668166049a1dd1f8d078b6b8b62f8264cc02f64b1ac5d7beac6c"},"ros-humble-robot-state-publisher-3.0.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826190151,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c70b0206f3574bbb45ee76254fd6f805","name":"ros-humble-robot-state-publisher","requires":[],"size":223055,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7edaedd5dc4091a61f6906dbda1eca5f5d1523c103a7a1f47769ceb6bea250ec"},"ros-humble-rosbag2-cpp-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828702525,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b15b173c8a090aa8cbb1f634464c8508","name":"ros-humble-rosbag2-cpp","requires":[],"size":205810,"version":"0.15.3","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"493cc8f1d61b4fe1d88228656f2c62267cd2440902766d6d9023cba6b6d2029e"},"ros-humble-rosbag2-cpp-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831691220,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ccebde919e61a6eb207b8065b03e7782","name":"ros-humble-rosbag2-cpp","requires":[],"size":206123,"version":"0.15.4","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddb16611e800051eff3b4d2e488913783da3939665548f1b7e85009321f8acb3"},"ros-humble-tf2-kdl-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828622333,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2f47ebb6206fcc8276f0d60005749c6d","name":"ros-humble-tf2-kdl","requires":[],"size":20349,"version":"0.25.1","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74ce0d00e6c6d9d76828448e81123ecdf352692d37b7e9c749adf4f5b93ae6c3"},"ros-humble-tf2-kdl-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675825709046,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99e6c996cdba20b54bee735e392d811b","name":"ros-humble-tf2-kdl","requires":[],"size":20687,"version":"0.25.2","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c94561143a417703db4e16f57d9b802e0e6bf2e4e5f97a2b1cd4d420d76ae8b"},"ros-humble-tf2-geometry-msgs-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828072097,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8e1b18762156e168e93390e2d1c61af3","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":26957,"version":"0.25.1","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a1453d8970c5ef35260327e5295d30bede85897cd8669fbac72702763123933"},"ros-humble-tf2-geometry-msgs-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675825861712,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5952f8a4ea0500f783b7fb321a5c31eb","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":27243,"version":"0.25.2","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c7b6a6c3353e2257e74a818c929cffb323fbe7459c222a8d5d5c889142c63dc"},"ros-humble-ros-testing-0.4.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829143828,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b934f088047d32d358cef56d264a697d","name":"ros-humble-ros-testing","requires":[],"size":13232,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e41f42d3e35c81caf64f10fc9b9f1636d72951c7dd8e94c8bb18bb3abded501"},"ros-humble-ros-testing-0.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841674466,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"938b3d1b0ffd8c3813accbfd15135ff1","name":"ros-humble-ros-testing","requires":[],"size":13486,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d24337b5ae16afca7e63d666dfdef7f9c63115096000b1ae84ba98a7226678af"},"ros-humble-tf2-sensor-msgs-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828493686,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"48a30a4aba54f1a0eb5e06ce2ad9cf14","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":15612,"version":"0.25.1","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77cf723757d27a79143a8b84904f324ae51515f37b3c9f90d2f19b3a65bbc803"},"ros-humble-tf2-sensor-msgs-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826447771,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3abcd8ff72a33c3e048df4dd057edb2b","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":15862,"version":"0.25.2","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c36984a76d8136ef02d73af7535436dc1a1859d390033b3c9a80d2e37be6b54"},"ros-humble-joint-state-publisher-2.3.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828168505,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9b5d0fe47f6166fbeaf8c86825aab317","name":"ros-humble-joint-state-publisher","requires":[],"size":19840,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38ebb80205e43b193abb01d52cb84b21bdbbfc025d0b10e26807c35c6723ae7d"},"ros-humble-joint-state-publisher-2.3.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675825960592,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6d6e44ed656b7e0cff73bed61a5245f7","name":"ros-humble-joint-state-publisher","requires":[],"size":19413,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b5128396ab04b69a0697299d67b2fedba3d7ed4b92bb4198aa214d5d6faa103"},"ros-humble-ros2param-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829007796,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f4c47e67a3b00cd5cd58e99edc00fd8","name":"ros-humble-ros2param","requires":[],"size":26505,"version":"0.18.4","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7301fddf43d1f5c925fc0882fb3df70ddecbcd38d3c9d2d90c7db985d99c5c2"},"ros-humble-ros2param-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826312286,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"040d0bbcfdfc0ea10adc77d3677a3482","name":"ros-humble-ros2param","requires":[],"size":25666,"version":"0.18.5","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b711c7730355eff0fca7b15b6ed1827d5f39336ae159ab38404a29fed527311"},"ros-humble-nav2-simple-commander-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828211599,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"34eb2507048717bb3ebf29a26ae044f8","name":"ros-humble-nav2-simple-commander","requires":[],"size":43876,"version":"1.1.3","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6703f90a9a469506116c7d488dff4ec36e7ef8d557665033d742d556207149c5"},"ros-humble-nav2-simple-commander-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826436373,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74fb73836e2e7e3743d40003321e46b0","name":"ros-humble-nav2-simple-commander","requires":[],"size":42478,"version":"1.1.5","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d40467664488932bca810638d1a62b43d6a8b3c5bc9ba3642491c7bd21bdff4"},"ros-humble-theora-image-transport-2.5.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670828755503,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"356476b95ee43b6df3e36d52a82a1dc9","name":"ros-humble-theora-image-transport","requires":[],"size":305140,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0622c21ecebf1c5d41898bca7f38d60c0ae757e4f4e0cb6178cd11ffe096e9ba"},"ros-humble-theora-image-transport-2.5.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675843795005,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0a4c15ead6ad0bb0b01a6ee01c8279d8","name":"ros-humble-theora-image-transport","requires":[],"size":312371,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76433633ab2c6e59d866d33a14cf60502c13387404214c2b682f76303c0abed0"},"ros-humble-ros2launch-0.19.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828453821,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"365edfc7e5175d7c4024ff504096976e","name":"ros-humble-ros2launch","requires":[],"size":20409,"version":"0.19.3","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4860ce47ff9b66588d47683c49a6d41b66c581e73745e700ff4963ebd6add2c"},"ros-humble-ros2launch-0.19.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826680757,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae74caa016318887aaf3c0c8656ef512","name":"ros-humble-ros2launch","requires":[],"size":19908,"version":"0.19.4","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"871c6db3db6686e71dfe2230dea09f1083b75cb9a9300bd9617a34633169af0e"},"ros-humble-ros2lifecycle-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828335743,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ba10aa542bb3989333d776c92697a181","name":"ros-humble-ros2lifecycle","requires":[],"size":19320,"version":"0.18.4","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cca80f391e395fcfbd9498bc2cb2939cf3ec210fe4f2664689477ff92f3456c9"},"ros-humble-ros2lifecycle-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826783587,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c33a5c77ada83fb30954323c2558d8a8","name":"ros-humble-ros2lifecycle","requires":[],"size":18724,"version":"0.18.5","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3884521043e292b8b716b615d31b52012f886f92f4ff96d5676f27998e25635d"},"ros-humble-compressed-image-transport-2.5.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829022509,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ac491a6185b656a87a69f6a4f4474d21","name":"ros-humble-compressed-image-transport","requires":[],"size":165229,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8f40206837f3c5719d242e9f99cb92d01df68cc67c2cda318b0039c5dd5cf5c"},"ros-humble-compressed-image-transport-2.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844052309,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39a059da3b25849d7ee57818dd1d3d3d","name":"ros-humble-compressed-image-transport","requires":[],"size":164608,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"158526cfa314220638b8584b3f3483034f4e983a16863ed30bb5b319f1db9a77"},"ros-humble-rqt-reconfigure-1.1.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829496845,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5362200aac5a6144146404430e7573fe","name":"ros-humble-rqt-reconfigure","requires":[],"size":53025,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcaf8ad4ab3c03d0c0b965227b6fbfdc7d65fd012fdc067f1b1311a26c10c8db"},"ros-humble-rqt-reconfigure-1.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844286317,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6e6165a0a1784a1de111fa81c6da810a","name":"ros-humble-rqt-reconfigure","requires":[],"size":51455,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b54b07a0dab0b902b4459c8d5d1e82cc027b92e367fcc89f8d4f68542ad0335"},"ros-humble-image-publisher-3.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829400295,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6dec26fe5113633521f75f08259aece","name":"ros-humble-image-publisher","requires":[],"size":108646,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4538e0e53b153ed0e715a36985bf89242f1c0f595f040d71a9a78fd9553db13a"},"ros-humble-image-publisher-3.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843731968,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c70740bedd8bd2a359ef91f45dc7cc3e","name":"ros-humble-image-publisher","requires":[],"size":109127,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55081addc6b28d563b96360fdd7533b3dddd61ec168b6285618a4cf22157e1d3"},"ros-humble-turtlebot3-node-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-dynamixel-sdk","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333098402,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ea0af4128eaee52feca567ebd7f52d9e","name":"ros-humble-turtlebot3-node","requires":[],"size":19080,"version":"2.1.5","binstar":{"package_id":"6392d03166b3e4e3def05409","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e1f53dd3555690d5efd4cc57375cdf590a14a9194c0fa94774bda3e9b0cf0ca"},"ros-humble-ros-gz-image-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670828881971,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"32d286773966629393389256c6a126ea","name":"ros-humble-ros-gz-image","requires":[],"size":51029,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97d7404935949d0a66c9c96bb0a4e8fb2d9e96e42e647b5ec208f837f53c5853"},"ros-humble-ros-gz-image-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844538536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"82dd02698c83456add028b61ca9d34b3","name":"ros-humble-ros-gz-image","requires":[],"size":51300,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"804671f65022f6ab3b48b9ae495b345798cb423f468f3529c832a4858c90247a"},"ros-humble-image-view-3.0.0-py310hec30da9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hec30da9_2","timestamp":1670829204877,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6fd9f2466c659552843b2962cf145875","name":"ros-humble-image-view","requires":[],"size":298007,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3924ccb8453f096fe0b0f0d3c81e03dcf0283096b046a063939a086de5b60ab9"},"ros-humble-image-view-3.0.0-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_3","timestamp":1675843230497,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6ec9b1717cefb38196ccd8a9cd70676","name":"ros-humble-image-view","requires":[],"size":299868,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd8efaf2e5cc224a00ba20dbe026c999cbf82f1a7c037273169a95225ca280b3"},"ros-humble-rqt-image-view-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h927cc32_2","timestamp":1670830192560,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aa98b3e0061354d68b4bd7495db02998","name":"ros-humble-rqt-image-view","requires":[],"size":208635,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"944aa7e4834955ec2200217844b565b5a91a74b1cec46ea0a052e3e53be773e3"},"ros-humble-rqt-image-view-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844302027,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"af1bf7f52b667502ff84c63ebbf8c738","name":"ros-humble-rqt-image-view","requires":[],"size":208982,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76be53ff8d416714f60eb47eaf5c8b10f0e9f2ad1a4ba5d54d2b4801ed727d52"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829237314,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d207cab4d226108af7e96373fed65314","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":149696,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b416172c5884c4d3fb359b29a90050af382a288647f96e008508147b2c701ae4"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843565808,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c1f4e1932762111b4f995a4a399a8a6","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":150174,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6342554ff294b1d6f716616d7b020f88a073a3bec4222962b9a766355ccf91f2"},"ros-humble-image-proc-3.0.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670829729136,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0102eb18d689c19f88166d1f1a25f6b7","name":"ros-humble-image-proc","requires":[],"size":92603,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"234edcdf32951288501090b264ee691f30188c952358395a74d37a07191c2f2b"},"ros-humble-image-proc-3.0.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675843859279,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ddc03c1fe66e38aec42ec2c928271036","name":"ros-humble-image-proc","requires":[],"size":93084,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1323be3167858d27df35b9d874b95c3ab9d32ff19e1f5adc3c3e0038d70d2eb"},"ros-humble-tf2-bullet-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["bullet","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829417030,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1c0d73c1370be9d1977f8fe062fd58dd","name":"ros-humble-tf2-bullet","requires":[],"size":16278,"version":"0.25.1","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"220ddf4a0737854a02d2428ba26db32e6ec16b01c76d077c1211320e4cda2861"},"ros-humble-tf2-bullet-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["bullet","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675826969824,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bce918f6874ee54839fb693635445545","name":"ros-humble-tf2-bullet","requires":[],"size":16547,"version":"0.25.2","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"124b75a7b71c5df81c87144878c8851d6c9f95c5ccfd8d767dd27d0b7fa138ac"},"ros-humble-rqt-msg-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829852037,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a7c259cdbbe937ba9b1e8621cf32ba4d","name":"ros-humble-rqt-msg","requires":[],"size":20309,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"654d07ed34e8e0eea5fcd62262f22ce68fbd59aa0d0b56b7e065de4735c73455"},"ros-humble-rqt-msg-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843969771,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"993360c425201fb211b7286b4b56bdb0","name":"ros-humble-rqt-msg","requires":[],"size":19859,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b38def065f81421640ce0bbfef78030e435b94579e9c58a3690cded31ab9eb7"},"ros-humble-ros-ign-bridge-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670826917044,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2fca42d85c15277ca2bacff92016d1e6","name":"ros-humble-ros-ign-bridge","requires":[],"size":22349,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf8fdd5fb23177e46be0d56b1aa4b97811ea3cfeb060503fd1c4b2b45c508b1e"},"ros-humble-ros-ign-bridge-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675772301584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a89810bbe737743e6ad333daacb6ead9","name":"ros-humble-ros-ign-bridge","requires":[],"size":22661,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d959fa074f7a8f91f852331658655014d59a424790c81253af836b799a1cf147"},"ros-humble-warehouse-ros-2.0.4-py310h37194c7_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=1.1.1s,<1.1.2a","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h37194c7_2","timestamp":1670831290771,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"031312a358ce30fdf9cd27f7757435d2","name":"ros-humble-warehouse-ros","requires":[],"size":128422,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e426d2025bc2620beafdb9229c7f6ac7c8b98c6082c612f0c84122430129e09"},"ros-humble-warehouse-ros-2.0.4-py310hc745ddc_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.10.* *_cpython","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":"py310hc745ddc_3","timestamp":1675859912677,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"035c05d24e6612f3eb20e4d347f4e4cd","name":"ros-humble-warehouse-ros","requires":[],"size":128861,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50c618f5145ee989045e09925c853adbff16651d809cf5b1e0d125d2ed50f873"},"ros-humble-ros2component-0.18.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831534579,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bcb7dc5fbd1cdf3c14b33ce7dceedb9c","name":"ros-humble-ros2component","requires":[],"size":24066,"version":"0.18.4","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4309be08b47365419f602d42ed347cead7721a76ac28659f2af356a490c03dc"},"ros-humble-ros2component-0.18.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831159365,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7b23573e5b6922f15d423aa54b2e8fe5","name":"ros-humble-ros2component","requires":[],"size":23371,"version":"0.18.5","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"115b2d7c40af060611f72715e6e8995e5eb7579e3eb45e8ba26c62ddf902bdb7"},"ros-humble-interactive-markers-2.3.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670830998198,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d25d7ee746575ec95ab9c7a5c461234d","name":"ros-humble-interactive-markers","requires":[],"size":252004,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9def862e1f9e909d58bc0797477370da7efdc2b2b63add6b41482b5ad1aec86"},"ros-humble-interactive-markers-2.3.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842632920,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f60fe659187a8e78a6fc3a7816621bb4","name":"ros-humble-interactive-markers","requires":[],"size":254545,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fedca944ed35af42a7dc083b735cecf638b42077019a1f96ddeba04ac84ce717"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831083078,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"beabbe6a3c390c75e8d3d676f21391f7","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":22686,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e77b9f55cee83d306146198478b3204bfbc8af71f939f6eb2c576ea4864705fa"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675830541972,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6216f1662674096af6385a4dfb370cc0","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":22961,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"035d54fe3bbbc1167092f141d702658430e8990dbb920154f60dcc01b2b5ca64"},"ros-humble-sros2-0.10.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cryptography","importlib_resources","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831432034,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3012666b96eade4258f3166e06b5c66e","name":"ros-humble-sros2","requires":[],"size":42060,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62968f7885fab55ddf8d15d48dd918422d7162e0b411ebf60709d7978061a521"},"ros-humble-sros2-0.10.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["cryptography","importlib_resources","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843460147,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fefe9aac3fd241a170d865673706edb5","name":"ros-humble-sros2","requires":[],"size":40197,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ca30fde12ee46e608f4be311bd9a36264e0e8bd4eec44fc0640cb94ca0b5176"},"ros-humble-rqt-srv-1.0.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670832106000,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a425de1d4d49603c9335f844041f41b6","name":"ros-humble-rqt-srv","requires":[],"size":12451,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60b0ee479905f2c0acba09bed66f48b72b0a44e89e3b9a1775b54d6caf6af7d7"},"ros-humble-rqt-srv-1.0.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847833135,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5c8b1bd5dabfbcef19ce5d341359f655","name":"ros-humble-rqt-srv","requires":[],"size":12227,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4317ad6a7426029d34fbdb323affec3f86bef8594ff6b2e5058cae6ed911d812"},"ros-humble-rqt-action-2.0.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670832188598,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"320983b990db5909fd408b512266eaec","name":"ros-humble-rqt-action","requires":[],"size":12474,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a59d9fb44b79c2b2dd81e647acc4bd24ee803eb46a9f96bf0bb13bb249c29ea"},"ros-humble-rqt-action-2.0.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847173276,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"deb93fc09f740ffb31390ae340e6535b","name":"ros-humble-rqt-action","requires":[],"size":12245,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f17cde0faa0eadda1d8dfc0ad941347d53a11e5937dd040dd308f97c7725a04"},"ros-humble-rosbag2-storage-mcap-0.6.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670832159458,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"288dab896476531072f32a1a844229a3","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":103566,"version":"0.6.0","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fdfd152acaf300ff78f6fb08bdbb32f8e822ee347783eaa01ac2b9f3955b9df"},"ros-humble-rosbag2-storage-mcap-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675827137957,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1c65b3876c70897fb336145210410a94","name":"ros-humble-rosbag2-storage-mcap","requires":[],"size":104381,"version":"0.15.4","binstar":{"package_id":"6392d469a2b71210084340aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35133c38d25d7171cfc739fa8c86ef1b6bc2b05ac5525a95e2cd441f79889e63"},"ros-humble-depth-image-proc-3.0.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670831997873,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"879ee1c68957dd2cc68e2c18f4b1ff41","name":"ros-humble-depth-image-proc","requires":[],"size":303750,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49aca29bcd83b48168edf6c5b784b8614438eb5eb816710c941640335485ec1d"},"ros-humble-depth-image-proc-3.0.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675844129336,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7bfa5c3309d72ceccb58a63c299324bf","name":"ros-humble-depth-image-proc","requires":[],"size":305037,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"facaec98181629d3393c1f7092aaa63124d50142da6a086eda1a983ebb369d8e"},"ros-humble-image-rotate-3.0.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310hdd2ad31_2","timestamp":1670831589700,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"86fb7671feb3104d1aff189cb99dd078","name":"ros-humble-image-rotate","requires":[],"size":83163,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f001df2c3d3fdc48695d6d12715ce64fcabd466defdacc353513121dc38d1b2"},"ros-humble-image-rotate-3.0.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675843488172,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"988e5e0814b10c467a7ad3ae31691900","name":"ros-humble-image-rotate","requires":[],"size":83385,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ebecdec9afd7b68d7107cbd86ad072978a29fd7f40b83a092dfb3dbd611baea"},"ros-humble-stereo-image-proc-3.0.0-py310hdd2ad31_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hdd2ad31_2","timestamp":1670831421054,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d93100dc229132855fcf7dc98e7ebdab","name":"ros-humble-stereo-image-proc","requires":[],"size":320552,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc2d1a509ed12831985a8014c90470b36c6cf4869e4498abd31b1cf12bbdf6aa"},"ros-humble-stereo-image-proc-3.0.0-py310hdd2ad31_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.10.* *_cpython","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":"py310hdd2ad31_3","timestamp":1675847721524,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"645a1728faea484d8770df21fd8c8561","name":"ros-humble-stereo-image-proc","requires":[],"size":321513,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af2a26ecc54b1f8b39bf92675fa15df463df67da54fb837a4e421ce7f4cae3f3"},"ros-humble-dummy-robot-bringup-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670832037512,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"85b492c1bcd6144b080bc4463d2e14a6","name":"ros-humble-dummy-robot-bringup","requires":[],"size":15754,"version":"0.20.2","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fca333ee9f10bc9bc1939a51edc7f2bd7a80536a612827b41231154348fe179"},"ros-humble-dummy-robot-bringup-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675832252036,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb4981b67569454fc2ee184bf87bfe16","name":"ros-humble-dummy-robot-bringup","requires":[],"size":16032,"version":"0.20.3","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dacef08f587869796672ac50bae79b54e69c9f98ad919084551e7aa3a13f7979"},"ros-humble-image-common-3.1.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670828980154,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"452186f9193eb333e28c3828a73cdcea","name":"ros-humble-image-common","requires":[],"size":11818,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fba5ce657c7d2402ef90c54f3c4338d4b654f1a95382d22fa63fe60233df431"},"ros-humble-image-common-3.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844435608,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ba7282339cc5954ff8956d6fb51abaa5","name":"ros-humble-image-common","requires":[],"size":12066,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"abc8658c0b158aa34b37ff7ee91bac114518eb7ac4fed25455d48131ba1d6084"},"ros-humble-lifecycle-0.20.2-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831958929,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f349a70fbea43ed774492c8fed9e49ce","name":"ros-humble-lifecycle","requires":[],"size":218074,"version":"0.20.2","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed7583e9f051c75a61b955ba810149a975eb480ded39793930ce78611a285805"},"ros-humble-lifecycle-0.20.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844651839,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"359259d3bb5e4a35de352f796131bd87","name":"ros-humble-lifecycle","requires":[],"size":217132,"version":"0.20.3","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aabf57128a259cecf554e3a891d833be307f06eae5e642234bd1d8134149eaf2"},"ros-humble-laser-filters-2.0.5-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670829712989,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"139a5a4a6bf2a1ad26bdf3234911cd23","name":"ros-humble-laser-filters","requires":[],"size":818455,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48e770b59c96415400cffaeecbd1cba0a466e7f2814a3137bb08525ab0940b95"},"ros-humble-laser-filters-2.0.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675832156849,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"91537990c3f1604221691c8f1b04fa70","name":"ros-humble-laser-filters","requires":[],"size":817571,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"432761b73e5b518a0cd8e1c68d283c9c1d7545d9c77a8268849bb96a2ef98f17"},"ros-humble-robot-localization-3.3.1-py310hec30da9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","eigen","geographiclib-cpp >=2.1.1,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hec30da9_2","timestamp":1670832557232,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"22cf779f30f20a0e0088d53d6c41006f","name":"ros-humble-robot-localization","requires":[],"size":847436,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01042e8b4048f4e1d11b7eff58aa7298846590556f533c262604f3c46b73ed8a"},"ros-humble-robot-localization-3.3.1-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","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":"py310hec30da9_3","timestamp":1675832036878,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"37e47d0042f9d7b344df4435bf558a3e","name":"ros-humble-robot-localization","requires":[],"size":838551,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"575c5b3528d83295fa60d2d3f3deb9c139857d998b1518efd3e256a0276eec5b"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831496363,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ffd0daa697ac0fd2cce4706360637988","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":20059,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cbb78258354657e8def7e09e0dd8ad5099f0dc75633077b92e58cb5df142efe"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831503578,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6d4e5f1ab67fa983728863ec2a463a4f","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":19547,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0d7e22eb80375e31a4c38050371afb4091eefa65b7c61dd518b2770b6782727"},"ros-humble-nav2-util-1.1.3-py310hec30da9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310hec30da9_2","timestamp":1670831407611,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"efd9b6a3a82eaeff6ff350b944a944a4","name":"ros-humble-nav2-util","requires":[],"size":189312,"version":"1.1.3","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb9de4fa093e0c5603453b12c40a37f9a6dcc2701104b5233d8b9273b9aab37c"},"ros-humble-nav2-util-1.1.5-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_3","timestamp":1675831395716,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc87b55f13afd2e94292ff0c67095cca","name":"ros-humble-nav2-util","requires":[],"size":190059,"version":"1.1.5","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdc656a1c089702400d1d985d90ccefe26b4eb043c68d48ee5d5c79454dc4b0e"},"ros-humble-image-transport-plugins-2.5.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670830671680,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"86ebecde98686cd4f260c01f6ebbadb0","name":"ros-humble-image-transport-plugins","requires":[],"size":12387,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5bb6445b0736196c425893545021a2dadc4ddc91f87df02b57d7fddb8d7d1a06"},"ros-humble-image-transport-plugins-2.5.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847080242,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"09a6c87088a0eab29d373cf52988ab25","name":"ros-humble-image-transport-plugins","requires":[],"size":12674,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d2d6071147bca65787a5d0f79ff00024bbb9466ccc073bfa84730ca190560d6f"},"ros-humble-pcl-ros-2.4.0-py310h9401cb5_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h9401cb5_2","timestamp":1670831067902,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6e8e7783b1769932e4a63d5416d91dce","name":"ros-humble-pcl-ros","requires":[],"size":84626,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58f0122c1a25c0a3e0c1316d5e4cb376218d4b468c02d741d34764ba60a37723"},"ros-humble-pcl-ros-2.4.0-py310h9401cb5_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.10.* *_cpython","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":"py310h9401cb5_3","timestamp":1675831785851,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f24df62f83d42ab1ad46c325dfc405c1","name":"ros-humble-pcl-ros","requires":[],"size":84899,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24270bff2bae25f70ab1b593430a35258d0a130581596d4d6a177acdd0dbf1a0"},"ros-humble-geometry2-0.25.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831168984,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f07813460daf109a9038a7ad2086d786","name":"ros-humble-geometry2","requires":[],"size":12210,"version":"0.25.1","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79b9534b3bbe29f8eb7d2e5da3bb59a84a0e97e36a23567a9b6869b3cb5bc456"},"ros-humble-geometry2-0.25.2-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831900387,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"91416408f43e0001479413c47187e44d","name":"ros-humble-geometry2","requires":[],"size":12441,"version":"0.25.2","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"948025c6b45720d4ac2d6c0cc9d1f5d7d483e424f61be20f7b58c4dbca034a14"},"ros-humble-gazebo-ros-3.7.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1677542295225,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cf1a53202e07fbde58710887805ff057","name":"ros-humble-gazebo-ros","requires":[],"size":592439,"version":"3.7.0","binstar":{"package_id":"6392d513a2b71210084391a0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a8e0191226d63d2ffe8e91468748bdb0cc5b9bda13e74e2d6b158540cc619a5"},"ros-humble-rviz-common-11.2.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h927cc32_2","timestamp":1670832367317,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6cbec00f33cb0dfdbc07603a442031d6","name":"ros-humble-rviz-common","requires":[],"size":610860,"version":"11.2.4","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2e2ec7e97e4fad40e5fa9d6cea048607f4e6a6935a6b7195aab265ea8f375b9"},"ros-humble-rviz-common-11.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675832688484,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"603ed5b105b4f9d6e63bf698c8d258c7","name":"ros-humble-rviz-common","requires":[],"size":621012,"version":"11.2.5","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d24033b37d79c9372c269b34d9d4c94d3efdf5bb428490af01b171976aa3a20"},"ros-humble-rosbag2-compression-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670831627603,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7d3eaf8fa4fe01b904205c76355d406","name":"ros-humble-rosbag2-compression","requires":[],"size":130442,"version":"0.15.3","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4d591eeb2add46f827e564f22cfb7304b5368c05f8c13d59d2b217beff89e43"},"ros-humble-rosbag2-compression-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841974661,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8ad0dc8eafe816ecdba126b73006981f","name":"ros-humble-rosbag2-compression","requires":[],"size":130827,"version":"0.15.4","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0840e267e13d71924e3c3fbb544b887c86b12fa5ce0c76ea02a1af0478422e69"},"ros-humble-controller-manager-2.18.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","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.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670832568664,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7c1418504b2c6e5ced31749ed2435e3f","name":"ros-humble-controller-manager","requires":[],"size":252447,"version":"2.18.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75a241c3ca9fb6b83546df6c931e64682dfea7d8042f6c54e50b6cd4dbf70ff9"},"ros-humble-controller-manager-2.22.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842069304,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"42537b74fc406e6c4d6eb76aa100f53e","name":"ros-humble-controller-manager","requires":[],"size":295496,"version":"2.22.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"241b7fa3d877eac939a84a9af87a0a9745f5d2258a607b6402079c7e98bd06d1"},"ros-humble-rosapi-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670830763328,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"12404bb403bb12053e733d9f00eba182","name":"ros-humble-rosapi","requires":[],"size":30114,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad5a3f1f6efe9723800c093dc70c3a8075292986c96ef43f055cf116b31e3e05"},"ros-humble-rosapi-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675831400125,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d1157b83c4f44cbd3118a858f0ff0d21","name":"ros-humble-rosapi","requires":[],"size":30500,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b077e18f75b3ab14dafad2d6125333db00cd7e28e1ba64b90acc828c9c0b208c"},"ros-humble-image-pipeline-3.0.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670833030050,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b0fef2b9a20816f372ac50821d267bc3","name":"ros-humble-image-pipeline","requires":[],"size":12623,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f9e41e89922a95ffd2426aee18ba9542cf0f521e724c8896ed9ff508fe0aaa6"},"ros-humble-image-pipeline-3.0.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848854078,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"29431e53651585272e1b773cf800a211","name":"ros-humble-image-pipeline","requires":[],"size":12898,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3532eb84fb274b3baecf041cc5787e82c394d48f1d002b47882b741483d797b"},"ros-humble-perception-pcl-2.4.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670834035040,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e28ebfb53108d91d90c3b4a9477f8ccf","name":"ros-humble-perception-pcl","requires":[],"size":12733,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c3b129297f99a09cd5c688b2f8f3b2541b67f9f079f9cd2a35b13571a3e6e4b"},"ros-humble-perception-pcl-2.4.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841709612,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"64ec6a72a700bf4a81f87f5a08417967","name":"ros-humble-perception-pcl","requires":[],"size":13000,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8baaaac82f5592a59bcc96db53b6c5072e31e2c5f564cc1951fcd701c398c56b"},"ros-humble-nav2-velocity-smoother-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670834334581,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7afe2dbed3a57a28d0ac53f85f391747","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":155322,"version":"1.1.3","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4bd15c56038409384534d88a772e94d041f4b97da871f08c26dd1a8cadc95fd3"},"ros-humble-nav2-velocity-smoother-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841911765,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6142df7ac8431577356f0b297f032506","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":154501,"version":"1.1.5","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"acab68cf65f699ac4f584f942e6d480510d0151e9235a4417859e8ee6fa0ac39"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670833823695,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0955d3adb860421258c15f4b7145994b","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":12016,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cda3e047894e64081987aae5bc73b8d04e4393e3b2adabcb23590dc39f65ec1b"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675846971842,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fe1b0924ce8b8444ec01fbcc397de240","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":12284,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a155f6459e6efb430c7362b79ab734afe2877425fabdaa8c338df66c1b6fa01a"},"ros-humble-nav2-amcl-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670833643767,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b6163c7ed3889c9f800eeb1ffda9c08b","name":"ros-humble-nav2-amcl","requires":[],"size":395287,"version":"1.1.3","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"903d3ad4ee3d0c7e989b951b80eb21aab021c09b5ebda96d357d9dc7d95065e4"},"ros-humble-nav2-amcl-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842334387,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5a1967ecfe6f12c504d956b813368805","name":"ros-humble-nav2-amcl","requires":[],"size":395171,"version":"1.1.5","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d7427c8fa86a0c526e9e7489d0fddff33acf7f7ae306b6deaaf228c9d8e6bbc"},"ros-humble-sros2-cmake-0.10.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670833738290,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f3775e62aa73fb2d4d7fa10218cb0ffd","name":"ros-humble-sros2-cmake","requires":[],"size":13012,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c34bfdb08982f65a447e357557fb7f2f144b99ce94df3a7f001503e8d7480c3"},"ros-humble-sros2-cmake-0.10.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848291853,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"868b43cc762cbf6b412503c5bbd69ccf","name":"ros-humble-sros2-cmake","requires":[],"size":13256,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3a980ac3ef2c481ff6df2337d8add22d9ee9b93e7f035219cd687b1cef2d452"},"ros-humble-rosbag2-compression-zstd-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670834433156,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f08a6da5c32bf8a3bba9ea69d949389d","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":41765,"version":"0.15.3","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5e4600147fa44d11c1796f28f76ca6f24d9295be2f7e8a089d99ebbdd329d95"},"ros-humble-rosbag2-compression-zstd-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844556637,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"529631ccb5188446523ba7426e8bb414","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":42039,"version":"0.15.4","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d0dee7e888ada39c10dd25d03ece99b85b657d78b361f07d69e85a33a756984"},"ros-humble-nav2-lifecycle-manager-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670833935984,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dccfb549f4cd9d552e6fd047c2cf1345","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":134613,"version":"1.1.3","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ad039f59b20b66ad53220056582d6590ec31ca440f934346c3fb19da90211ef"},"ros-humble-nav2-lifecycle-manager-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841700269,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2274997752157ddcc0a2d86d03175363","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":136191,"version":"1.1.5","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6cd3334a1039b67d8975356e779d3e4f2e1f3c06c0ff94af0a050159a806e97"},"ros-humble-nav2-map-server-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["graphicsmagick","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670833687458,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"30cb1d3c5f12873979d9dfb75f83da49","name":"ros-humble-nav2-map-server","requires":[],"size":249955,"version":"1.1.3","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8220445ab01b45b65561e4c8878d492ac347333335f4d70441593a9eaa1f7626"},"ros-humble-nav2-map-server-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["graphicsmagick","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841430534,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bdf5a6deb88c139980f6e4835d8ac8ba","name":"ros-humble-nav2-map-server","requires":[],"size":249902,"version":"1.1.5","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"201d1e8a76e56367b86269ad0d45695ff301b40ca2cdf027a3cdb16a446e89ce"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670834044294,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"81bad403c1d6abfaa45d481c54dbdfc2","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":28140,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67eae238ec10ff47f1a3fadfa8f9b9a61f1a08c43f69d75ce7dabbeb8306e3ca"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841807327,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aae377809e5a2279061d2e297b49e5e6","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":28432,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e41cc6fe8fd2701f208a5557e92c6ae30baf436777dab2e40f5755e7a0f2f9b8"},"ros-humble-nav-2d-utils-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670834268590,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d9118673f235516376957d4b373c5fa3","name":"ros-humble-nav-2d-utils","requires":[],"size":32052,"version":"1.1.3","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ee3103bcfe5a11bb0230d922221b4d87f2f9b5ebfd98e62eb1180ceeb1548d0"},"ros-humble-nav-2d-utils-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842182671,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a4b381458dea7e5dc25846c7bcf4738a","name":"ros-humble-nav-2d-utils","requires":[],"size":32304,"version":"1.1.5","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7b0eaa08665c36ab71439dbded8758b7aa0512a089dc5855c984c23a8878267"},"ros-humble-ros2controlcli-2.31.0-py310h927cc32_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pygraphviz","python 3.10.* *_cpython","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":"osx-arm64","timestamp":1694673143510,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py310h927cc32_3","md5":"9863b0d14b13194e8a9ae1521d726f8d","name":"ros-humble-ros2controlcli","requires":[],"size":25698,"version":"2.31.0","binstar":{"package_id":"6392de6754e9ace854e33638","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74a7b98ec87d10971f59c1c478acc6f7c34b1eb567c5380980f226dacb47fe3d"},"ros-humble-cartographer-ros-2.0.9000-py310hd0c70a7_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","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*","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.10.* *_cpython","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":"py310hd0c70a7_3","timestamp":1678332813365,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"19680c39fbe81454d91c070a473a11ff","name":"ros-humble-cartographer-ros","requires":[],"size":898925,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8ea0c60c88ce0c419485ba4fae4b50b1519fb9a0cb4e926557a4bdebd552c5a"},"ros-humble-transmission-interface-2.31.0-py310h927cc32_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"osx-arm64","timestamp":1694672998576,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py310h927cc32_3","md5":"b126f63fc5ca7c3538270b4d7a4f8849","name":"ros-humble-transmission-interface","requires":[],"size":56709,"version":"2.31.0","binstar":{"package_id":"6392de6966b3e4e3def7dd4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52c09aa402f14faa65aaa1260bcd531124aa330041970b0303f78fcbe82c15ff"},"ros-humble-joint-state-broadcaster-2.15.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670834111098,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a79570227e50d52669afd59c00d99a1b","name":"ros-humble-joint-state-broadcaster","requires":[],"size":110660,"version":"2.15.0","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08eb9f3e2763f0e35a1c1923c52be322a5ba7073144ff04214f03206dab2b64a"},"ros-humble-joint-state-broadcaster-2.16.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843322196,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7e418b20ff6b55018bfe79a282a7388","name":"ros-humble-joint-state-broadcaster","requires":[],"size":111103,"version":"2.16.1","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"270ba10c7e83d160c3ecff4fa61cd7acbfe867acfc5ca1a653e3221fbf455418"},"ros-humble-rviz-visual-testing-framework-11.2.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h927cc32_2","timestamp":1670833082829,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0cb8be5b38c7f98aaeeecbfcb4667d6","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":83980,"version":"11.2.4","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af734e8f180b5931a29e6d77ee9ff7fb825b14c0c10905ec291eccdbe53d34ec"},"ros-humble-rviz-visual-testing-framework-11.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675842417891,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8866d1cdb64dd9060876ff8b2335c673","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":84139,"version":"11.2.5","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd7b6bc67c767225c9da1d432db61e89bbb9d0fe15c8f7339f19245d486ca36d"},"ros-humble-joint-trajectory-controller-2.15.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","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.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670833942580,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"481572a205e6466fe152d80ede5c3a82","name":"ros-humble-joint-trajectory-controller","requires":[],"size":256892,"version":"2.15.0","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"baa07237e4b6baade3423aeb5b54d6d7bbc158392107ef50682408a6a2394cba"},"ros-humble-joint-trajectory-controller-2.16.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843135204,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9fc06e0dea26915b5ebe3e81fd84509a","name":"ros-humble-joint-trajectory-controller","requires":[],"size":254389,"version":"2.16.1","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b87d67c70488a7d8634cfbb40d3c3a4526207ff49a44e0d35547b26abb5f46e7"},"ros-humble-nav2-behavior-tree-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670833726697,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2cf174fe20cced356a931d369506f52f","name":"ros-humble-nav2-behavior-tree","requires":[],"size":1683930,"version":"1.1.3","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"653f56b853dd560b56a69f3f0c87279f4d2d93ef0c0cbfbd7966315d7b5c8e20"},"ros-humble-nav2-behavior-tree-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675846584230,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f5bf906a26eb9e3adcf884972f7075d9","name":"ros-humble-nav2-behavior-tree","requires":[],"size":1796453,"version":"1.1.5","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5ad611acaa80d944240a09dabbd4e4e86a3f8cbb9595316b94c6a5b90e6104d"},"ros-humble-gazebo-plugins-3.7.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1677543321400,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b26171e79cd7ffbe699104c047323605","name":"ros-humble-gazebo-plugins","requires":[],"size":2681030,"version":"3.7.0","binstar":{"package_id":"6392df53e6a2f79ab8534af3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b96ddd86af2dc912387d8fdcb85bc743edfc0dacc741d4d3e73dc8259bb302ab"},"ros-humble-ros-core-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670839522929,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e2382c46a41e4b51f92fa5cd17747754","name":"ros-humble-ros-core","requires":[],"size":12391,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbac9cea6c13b2b281c00669721322e8b111b295ef423b60a9d4a2d8c0bba474"},"ros-humble-ros-core-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675850022889,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5a67ad7a2387cb752de89ab42183f2b6","name":"ros-humble-ros-core","requires":[],"size":12678,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e1ec4b0f61e4293e48fcd489df4dc4c18f5237783187ffeb1e409d81b8dd445"},"ros-humble-ros2-control-2.31.0-py310h927cc32_3.tar.bz2":{"build_number":3,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"osx-arm64","timestamp":1694673374313,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py310h927cc32_3","md5":"a08cb08685b34cab0abcd8bf38f82729","name":"ros-humble-ros2-control","requires":[],"size":12635,"version":"2.31.0","binstar":{"package_id":"6393ee8454e9ace8543c1b9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14ca3000202f52d823c73a3df7f20d823ccab920d7451ba0d6ff2f4259ba6c8c"},"ros-humble-turtlebot3-cartographer-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-cartographer-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333763014,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"766738d7bd4be15d65d44f722410867c","name":"ros-humble-turtlebot3-cartographer","requires":[],"size":19836,"version":"2.1.5","binstar":{"package_id":"6393ee87a2b7121008f884c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63bb6e21ddd2eefdc83e62abaf8a11fe312796c258ffbb4dfc9f297d473725e0"},"ros-humble-ros-ign-image-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670832347529,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9cdad0816ffe1a898b3565edd307ea53","name":"ros-humble-ros-ign-image","requires":[],"size":20416,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb5177e50d229225b377b14e7be9c1abc35a6b3ced44b1d88fdbacada54ca3f6"},"ros-humble-ros-ign-image-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847376633,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"56297781774854e5c99cc20ca9c79bcb","name":"ros-humble-ros-ign-image","requires":[],"size":20741,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31376f68d89c997629027035a149d569079ef3ab0635686ebf8d2bd58136accb"},"ros-humble-ros-ign-gazebo-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670824025732,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"71a75fb4d420f0406fff6d4a89003918","name":"ros-humble-ros-ign-gazebo","requires":[],"size":23192,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a65c485ab793413f91f1fdb949168dace18f694b6ba7e27fbeb11e7bdda6a0b9"},"ros-humble-ros-ign-gazebo-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675756348774,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f3f0b69b7a407a71885fda70e753a3b7","name":"ros-humble-ros-ign-gazebo","requires":[],"size":23460,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9040bab8e7585a12348868584bb3dbce610a5f3b4688f1d7543853fc15ab2a4"},"ros-humble-nav2-costmap-2d-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670836049053,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c2c2eb971a8cf4db78c43b2170f725f6","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1292788,"version":"1.1.3","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffdd7257db764cd1d85e33455bcd85cf64fa5aebfa20e3d62d2aa3a17bc837d0"},"ros-humble-nav2-costmap-2d-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675843482632,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"812413ef768bc5506ee380f1d7a24bb2","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1292713,"version":"1.1.5","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b07b337a926dc6baff8123da4303dacf8392b0b553b3f9b240952984b1101805"},"ros-humble-moveit-core-2.5.4-py310h01047a8_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","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","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h01047a8_2","timestamp":1670837253536,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c641345b1e9d123b81be6f076bf81984","name":"ros-humble-moveit-core","requires":[],"size":1324905,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"043154e96a5875365818b82852370d2d01e230b23e3134aa468391950dfbcf81"},"ros-humble-moveit-core-2.5.4-py310h01047a8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","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","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h01047a8_3","timestamp":1675844365620,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b71adbdf1666012e46134ffff5a03832","name":"ros-humble-moveit-core","requires":[],"size":1326954,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5744bc0bf4a418ffbc1b4a3fccf7ada55847f26e0b4eaf27d4709654b29dfdf2"},"ros-humble-rosbag2-transport-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670837535490,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ab643bb1edf856e74ea0d85f299dd090","name":"ros-humble-rosbag2-transport","requires":[],"size":288366,"version":"0.15.3","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b67bda5ce787eb7af41d0d70e725ed872df1c7c1995aadcb1a1da132a043736b"},"ros-humble-rosbag2-transport-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847846196,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"82de39b7af548a7d948f3eaa0e5b628b","name":"ros-humble-rosbag2-transport","requires":[],"size":289521,"version":"0.15.4","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fca40e891bbe755c48ee39778245c245f8d364d2b89be00d3e05c066b8df26f5"},"ros-humble-rviz-default-plugins-11.2.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670839335510,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a285b6405496d7e29b6e8e12eb101ba1","name":"ros-humble-rviz-default-plugins","requires":[],"size":1597896,"version":"11.2.4","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e74cac3a4c002ae681d0c137dddc77904c2d0adb62f5d5477f8fc6ae4fb0d503"},"ros-humble-rviz-default-plugins-11.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675845941128,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2bba7a538c50ac017804443dd56a1ece","name":"ros-humble-rviz-default-plugins","requires":[],"size":1586463,"version":"11.2.5","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f20f5cbcc861e4d6cd6f589c658f671cfe843293941fdd0e7ad6167d83b54a06"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670841388619,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a1d506f9926288cc9660015084efaf78","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":139942,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5173062385a7ce41611d4af3dedb390ba9330b1bd65bc376eaff1829b7e8ca4a"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847413498,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ec19bb93ae241402a6b3ff058d2da3bb","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":140318,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa7ad1f0733a2556903928269ec2a899c6263248b297d8810560acfe3efaa386"},"ros-humble-nav2-rviz-plugins-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670841316507,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"339c9007b3104c45fca3c0fd3e645b5c","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":371958,"version":"1.1.3","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65e006701ddb4e529d35735e8064059fad9781179b19c6f2d515757a7ae35cd3"},"ros-humble-nav2-rviz-plugins-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<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":"py310h927cc32_3","timestamp":1675848284939,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9650fbbf14ab7a3d334bf997e801720a","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":370844,"version":"1.1.5","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2784e76cd1c3efbddfeff7a75c8886f4a60fca84a6702fcb69c6901a8ea7bf57"},"ros-humble-nav2-core-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840054742,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7a77f42193f9aa2fc89d29a5ab97818","name":"ros-humble-nav2-core","requires":[],"size":18812,"version":"1.1.3","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93e3e625848b014dec591f451243c1f803d5b62cf1c4c85135a2d70ba7460418"},"ros-humble-nav2-core-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847066046,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ced65c14f0490818df3abb830d3ba94","name":"ros-humble-nav2-core","requires":[],"size":19052,"version":"1.1.5","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7734933a0690658039573f9b3e7a6b7233e386c9ec790ab7af6df20656a6d4ca"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840375786,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b28811bc3156d04a999d4c474c3d6548","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":270993,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3896c8f5938496cf76d24ab4514ea2f201c5389089b0b5d16b40e2802ac40c1"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847416687,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"622b9027362dc510de042115ec7085d3","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":271536,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f3c627f627b10a339cdc4ad84d096542a315c2026ae95cdd5198c510d9b2863"},"ros-humble-costmap-queue-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840596034,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2f924aee940401fe4a00171f985a1c9c","name":"ros-humble-costmap-queue","requires":[],"size":27041,"version":"1.1.3","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d2dec8d4a6d88586036f41440828c184e123ac52d11bf9b979f492c5450dc8b"},"ros-humble-costmap-queue-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847632648,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bb6d09ba50c71c873d1e21111a10c584","name":"ros-humble-costmap-queue","requires":[],"size":27286,"version":"1.1.5","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec4b8a661032a220b88fc81de883a3c1f5e9f455a65d075f8cff85e9a3cec8dd"},"ros-humble-rosbag2-py-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840841374,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"77cc27e7bc0f56fe84feea84ae103764","name":"ros-humble-rosbag2-py","requires":[],"size":485516,"version":"0.15.3","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b32b45b105e81020316dba2bb14278e8bb8a4afa20175c1a406069804e3d013b"},"ros-humble-rosbag2-py-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675850724145,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6ac11f3e3ff1351a217ebeb69e30ae90","name":"ros-humble-rosbag2-py","requires":[],"size":486601,"version":"0.15.4","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"223910a95b8ec026015fc6c56a5eadfc480703ce1e1548963317523ab69a9e5a"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840720539,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"23b357a278adb447ae403ed251c2c1e9","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":110470,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0245b8b21a983dfbb59ebdbab0ec7c21ce22e244a3e4e0aeb5dbbc23dc22332c"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675847851620,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9fbf362455eb8952ee89b3e1e0b226f9","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":110803,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da48e629e172b0030cc6dbaf50c7dc78bc89b19fe8176526af480364e9694337"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670841036787,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"455272228dfcb0f917d5b5215485d781","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":122038,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c6c22c48894c27dec33b63ea053ce78d0889ec37b38d2d7d70223d63947bfa9"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848171503,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3f5c2c5a84ec4840556321f583e599e5","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":122356,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f61f78257122486f494279652a47c1cc4771670ec5bb007ddc0541a04ccfb7c1"},"ros-humble-rviz2-11.2.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670840401519,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"78a341491bfc364575c190f53038490c","name":"ros-humble-rviz2","requires":[],"size":23967,"version":"11.2.4","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"885e7b1186f983bcee0339b0c662e249d5f910cd42f1d28ef0d67bd763d3e750"},"ros-humble-rviz2-11.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<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":"py310h927cc32_3","timestamp":1675847514451,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1b8fdf5405eb2609f75f74288e127aa2","name":"ros-humble-rviz2","requires":[],"size":24288,"version":"11.2.5","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8037332f8ada8904e90f8895b643453a70a08c64e04ad7f27530dd642ecffbfa"},"ros-humble-nav2-smac-planner-1.1.3-py310h256e9aa_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","libode >=0.16.2,<0.16.3.0a0","llvm-openmp >=14.0.6","llvm-openmp >=14.0.6","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python 3.10.* *_cpython","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":"py310h256e9aa_2","timestamp":1670846052933,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9d92e5c71bc9d8a500943fda070d8596","name":"ros-humble-nav2-smac-planner","requires":[],"size":634745,"version":"1.1.3","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c563a490025d5854d9680a06495c61c92c44e9da15cca935e6ee91317cf35892"},"ros-humble-nav2-smac-planner-1.1.5-py310h256e9aa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","libode >=0.16.2,<0.16.3.0a0","llvm-openmp >=14.0.6","llvm-openmp >=14.0.6","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python 3.10.* *_cpython","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":"py310h256e9aa_3","timestamp":1675849930874,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"072bd283640a93b34a6547c573420052","name":"ros-humble-nav2-smac-planner","requires":[],"size":633942,"version":"1.1.5","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"801d54377ec9425f48f302f67ab6dd629cb5f72f0cf5e6887684c5960dc10dd7"},"ros-humble-nav2-smoother-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670845521306,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e73c8c1af9004b5cc9947f00950fcb6","name":"ros-humble-nav2-smoother","requires":[],"size":208143,"version":"1.1.3","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be813233d1b1af80133c39514db007bc1c9ce781150fee308b3119fe3d16e6b2"},"ros-humble-nav2-smoother-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849439611,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b5a8643b6c05ffe870e60b51f35cb9f7","name":"ros-humble-nav2-smoother","requires":[],"size":208406,"version":"1.1.5","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"883aafb8b3921740306ac904884dce0cb789af744ad47ad9b16749632fe85e61"},"ros-humble-nav2-planner-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670846354849,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"796f85ed789db0d8c638cc50efa7b3e8","name":"ros-humble-nav2-planner","requires":[],"size":216075,"version":"1.1.3","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7e1632127591f878087b685e265f3314e6f67c439f42194e35215b59e7b8104"},"ros-humble-nav2-planner-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675850222314,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f4ac7c1c27120f6a98d3093e0d13d89d","name":"ros-humble-nav2-planner","requires":[],"size":215197,"version":"1.1.5","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"380b72ab82dcf1d93f0bb656c50b087a379ff5e0b9b8264d5e61d2327fb37b0d"},"ros-humble-nav2-navfn-planner-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670846590848,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c4c8c06c36d88f748d16266f1f0596b8","name":"ros-humble-nav2-navfn-planner","requires":[],"size":56124,"version":"1.1.3","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2370e8167ed9c75b2fad8bf31d95da3e69481b5a2501de42f72719c609ac16e7"},"ros-humble-nav2-navfn-planner-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848816221,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b24263dacfe5c933495a1f8802710103","name":"ros-humble-nav2-navfn-planner","requires":[],"size":56391,"version":"1.1.5","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"042dee48f023963b2f5ed259be1706c2b251a129f8d31d34f039a45cea3fcba6"},"ros-humble-nav2-theta-star-planner-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670845183478,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d50f69b38fab973d744103967cdc1ee5","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":47782,"version":"1.1.3","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e34db1a6183c5b110fb9917232e384a226dd9246b5e05a5ae23f2a698cd8696"},"ros-humble-nav2-theta-star-planner-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849158858,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d97b441f4262b9e8ac881fdbef96cc4a","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":49078,"version":"1.1.5","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cee59151d9efcd02f98f34bb1209448e9f896dcf3ccef8674e2b0ec36f073e05"},"ros-humble-nav2-behaviors-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670844446309,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c6973c97c51d82872d5c59740fea5d9","name":"ros-humble-nav2-behaviors","requires":[],"size":560338,"version":"1.1.3","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19a411dec703b01b7ee3d6943774fda13d58d926da5b968ae17dffac1012b18b"},"ros-humble-nav2-behaviors-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849903078,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"562c6c36d93f503547fa66a04c8a89f5","name":"ros-humble-nav2-behaviors","requires":[],"size":561024,"version":"1.1.5","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0771ce93c69dee6af126130791530c3c104b809ee6649a6e52835041164c0f18"},"ros-humble-nav2-constrained-smoother-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670843539106,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5c0a914d0ba76606193949eb119b1679","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":75860,"version":"1.1.3","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a8ea528c1469376cf8564956604e2bfc6f3c7cd993dc4ba151c6d72a4fbbf34d"},"ros-humble-nav2-constrained-smoother-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849106432,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4917018be17bce27fa1562174578302f","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":76237,"version":"1.1.5","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58ed0779b403093d391a6feb0b945d40e7fa074f30a3cebed865b7d557527705"},"ros-humble-nav2-bt-navigator-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670843949739,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eb33fe21958184c4eb2d2476852d7c1b","name":"ros-humble-nav2-bt-navigator","requires":[],"size":316148,"version":"1.1.3","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c7be9bc0edf85b846a480797b8328e57ae28e911503a820cd746c48b08781d7"},"ros-humble-nav2-bt-navigator-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849433893,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f091c0be06f88ec4d0fdcbeb00041fa2","name":"ros-humble-nav2-bt-navigator","requires":[],"size":312193,"version":"1.1.5","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"450573899f8b9708fbd481d1fe4d9a45fcf185d58db1fac3245c7fa2cfb2ee43"},"ros-humble-nav2-controller-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670846994456,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"769afe171c0de185eab6708d6f77eefa","name":"ros-humble-nav2-controller","requires":[],"size":352135,"version":"1.1.3","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f07c024d7b2bb1e7729fef6a00900cb2c4f6f504702b3f051512bf2d551078a"},"ros-humble-nav2-controller-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675850495462,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"27e3e965bac5c9cc82fb61fdf24281ad","name":"ros-humble-nav2-controller","requires":[],"size":356638,"version":"1.1.5","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79606005d5743b58954e1c6659e0c91eb46f408a32be9d04562fe2e0362c0caf"},"ros-humble-moveit-ros-planning-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670846379764,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ffea1058883d55582c8e600e02d35de4","name":"ros-humble-moveit-ros-planning","requires":[],"size":1486060,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47560ddeb01c3929728279e3e86adc3f4b5b5602c4f3498c70e43bb359113af6"},"ros-humble-moveit-ros-planning-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675849872945,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5c4fb3a7f92cc96f740f631f15847d15","name":"ros-humble-moveit-ros-planning","requires":[],"size":1502638,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa979a939ad6b0a2caf2d0db614e1b74a0671fe1b8bb328ee0acff7cafb57a1d"},"ros-humble-nav2-waypoint-follower-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670847356725,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c5a49f0e34b433eb71dc4d4f61e384cf","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":395458,"version":"1.1.3","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b85800403a4fc8b7ae8a2f5426bef4cb3024cee5c131bba57b5ee8e5ae3706ac"},"ros-humble-nav2-waypoint-follower-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848923220,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f84252db4d35e59a5106625c6f7f3b0f","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":396516,"version":"1.1.5","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7cf790e22a524b9a83c792e0d5d08c408039d669c86432b0814be016d9df6f95"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670846644515,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3e2f2ed562e3d3006cfec334ee969ec4","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":110346,"version":"1.1.3","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b714f4e7a7c625b1979ad4a3f75eb9587f84ec656c10babcba07007d297f87bb"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675850150595,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"908d5a523c06e58b37411fb2d528317a","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":110458,"version":"1.1.5","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab8040ab920b2d051cdc56993fe791a9fbc46f111c3d9438caf69a738a87d940"},"ros-humble-dwb-core-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670845527606,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3262b2e373acd397b4c5350667661627","name":"ros-humble-dwb-core","requires":[],"size":216642,"version":"1.1.3","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3fd60368295ccff1fe20badb3093c9e35b822ae37d8306314c3687b831e0295"},"ros-humble-dwb-core-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848993392,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cd8cbf5358fd9e00f50e156766082a61","name":"ros-humble-dwb-core","requires":[],"size":216953,"version":"1.1.5","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aec125c92cd0eea0b62e4dbed5252e43bb6c4a788f37a6402b7f1937ddbd5917"},"ros-humble-moveit-plugins-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670844313316,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3bfc65d29158c2aa1935639c9003ca94","name":"ros-humble-moveit-plugins","requires":[],"size":12524,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"579ef5993300d46532a07c999a7eba0b972ef03f7a0c17bf5f2d48389cf61a2c"},"ros-humble-moveit-plugins-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848986828,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8e45a171b67a2083a6084ea2c7d7c3eb","name":"ros-humble-moveit-plugins","requires":[],"size":12771,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69bc296d88d37d3e0cbba03705169976b36a8aef13bd3163add3f308cd47430a"},"ros-humble-moveit-kinematics-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670850012189,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"12cf387c38b88365a3c5f75761078e04","name":"ros-humble-moveit-kinematics","requires":[],"size":248959,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2154d0157889cba095396c46ba21b9ae98ef3ad8838d2aae8bc27a05c9809c16"},"ros-humble-moveit-kinematics-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","lxml","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675851963388,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1791d5798e26d0d906cc0496cc0dd5f8","name":"ros-humble-moveit-kinematics","requires":[],"size":250711,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11306d753db59193e84ab838f1397acf98cf3481ffea439a26ca5c7e34f975e9"},"ros-humble-nav2-rotation-shim-controller-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670850314232,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"96a3ee75912814fb8925d40c3db41c68","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":108680,"version":"1.1.3","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f7099c88f75268df1abce420158f8ff376d245273e0a9df9e508b58373d139d"},"ros-humble-nav2-rotation-shim-controller-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675852209505,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"57db1b2469f3e85943bf3f16f1939774","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":109125,"version":"1.1.5","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87842d58fd21df13ec977507064b101a10fef09a1d9abf421c6f80b178ddb61b"},"ros-humble-dwb-plugins-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670849212577,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee142b886b1eed2e10513c665e787210","name":"ros-humble-dwb-plugins","requires":[],"size":54780,"version":"1.1.3","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3200305666ccbbab2566ff646b9dc1401da8b51ae0b4bd6f6851e35c2de9e9c1"},"ros-humble-dwb-plugins-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675851249940,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3e6af064b2441edf11d83f968b61c3d3","name":"ros-humble-dwb-plugins","requires":[],"size":55157,"version":"1.1.5","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c7412261f94ca232073d4c51cf0948444e95d302d82f6a1ee54dd8c52e32b83"},"ros-humble-dwb-critics-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670849529971,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c143147b4f6c096241109a496ca6bf00","name":"ros-humble-dwb-critics","requires":[],"size":65053,"version":"1.1.3","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7237f13b59a00e8dfd31b2226bde012cbfc39ff24d1953fd08463326ee3eeae3"},"ros-humble-dwb-critics-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675851550658,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5fb96f063a08564c04f6ed70d6e2d3a","name":"ros-humble-dwb-critics","requires":[],"size":65382,"version":"1.1.5","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4127fbd2e0d89c8e27b174e50c5bcf316085d179be7335a15fccc644e7e959ad"},"ros-humble-turtlebot3-bringup-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-hls-lfcd-lds-driver","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-turtlebot3-description","ros-humble-turtlebot3-node","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333862521,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"67158dce1fbbbb394fccbc7eb785a293","name":"ros-humble-turtlebot3-bringup","requires":[],"size":17633,"version":"2.1.5","binstar":{"package_id":"63964971a2b7121008e87c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1360dc7bbb66ccab14e0f2be6ffac332e455f80f009c3be64e7e341e6678d16f"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-gazebo6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670844205871,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83c39f7b1c65ab0b5ec9d765f679d2b6","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":35245,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5013a11ff47e2d1aec2ad65b4d66f3c925c9fc1915fb02d76c5339f3be7fb0a5"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libignition-gazebo6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675848745711,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5bb3467985f3d68461fa13f97b77ae19","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":35664,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e9cb9174d69cf83caf74d7be3a27199b71ad0ee417b9ff3254571a735c105bc"},"ros-humble-rqt-bag-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670844700103,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2b7a0c6dc59d1847924c5b0552fb4a40","name":"ros-humble-rqt-bag","requires":[],"size":87430,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7201fd80fb0ee089c9b9bd7f423202d49de7a09b2a5d62d0f665b47d837df1f"},"ros-humble-rqt-bag-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675852048550,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ceed27c1869372b2a83ee0259d0b30ab","name":"ros-humble-rqt-bag","requires":[],"size":85707,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a87031f8375c94ac31885e91bca5f3ace8d7fb84b2a28cd5e770e48d597bcdfe"},"ros-humble-rosbridge-server-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.2.* humble","ros2-distro-mutex 0.2.* humble","tornado","twisted"],"build":"py310h927cc32_2","timestamp":1670833936113,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1455a43650d9724bf9c4c6f2b0cbcf2c","name":"ros-humble-rosbridge-server","requires":[],"size":26144,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97443951e932e3cbd04563bb93cba57f3dfc0879cbc133a7f446f8dac1daa0a8"},"ros-humble-rosbridge-server-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675841598672,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"326c03bc5d453ef1f558088008e74ab8","name":"ros-humble-rosbridge-server","requires":[],"size":26463,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3c441837b7ae62765eb4f519ac4ef7243193bddc503b4474f86305ccec8f3fc"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670848826585,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"48b55eaa5dec4251079ed7301567b9f2","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":200189,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fbba44bb7060c14f2784d29b8f0f5fff4f89be7ea368e97b316f5295ddc7765"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675851957224,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7d8a382a28eae55b55446174e146ae60","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":199640,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43f416df5ccc0222625782eade03d3eedd8f661688d4d7d1cda2d75577c36e1b"},"ros-humble-slam-toolbox-2.6.4-py310h81e1a2f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","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","libcxx >=14.0.6","liblapack >=3.9.0,<4.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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.8.0","tbb-devel","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py310h81e1a2f_3","timestamp":1678330862828,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e262ccae223d17acb322d159738c26d7","name":"ros-humble-slam-toolbox","requires":[],"size":2419344,"version":"2.6.4","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cce863fafbf09c1119c9d9387ed956804c064df1c4daa3b5607c98f27ffaef69"},"ros-humble-nav2-dwb-controller-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670851329126,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee5291baf243564780f3a2ac16d3fb25","name":"ros-humble-nav2-dwb-controller","requires":[],"size":12116,"version":"1.1.3","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d882b4244a4d437a6600036e67f20f7eee440da60491920a2b1432230b2b6e7"},"ros-humble-nav2-dwb-controller-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675853059723,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"610668a8efae44252e8bc9e83f7f7f9e","name":"ros-humble-nav2-dwb-controller","requires":[],"size":12349,"version":"1.1.5","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5140b82822680828a6e7b89f841c594590c2d307b22f8604edc7af4cc1d372c0"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670850773593,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a31ff147426fe2cdb4ca2ca624a00a2e","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":576303,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29e97461a8b1b366836347da5116a624b3464e739844178588ffaa12827731e9"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675852608374,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fa956d656d6fb7a3ab3cc215dbaf05f4","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":588070,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1de293d4075ba645abe8e69cf1122676e7b69228bbac102818a4c0b9ec12144"},"ros-humble-moveit-ros-move-group-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670851899920,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"88af684e4fbb237aca74b3ca46e87d3a","name":"ros-humble-moveit-ros-move-group","requires":[],"size":382201,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"406a08f55eb2f9b4368e878b5b55b0cc6d927917b480f7503f80787cebe728d4"},"ros-humble-moveit-ros-move-group-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675853555771,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"023476718dae95f0b61f669f5f91cd52","name":"ros-humble-moveit-ros-move-group","requires":[],"size":382507,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6976dbd7737ad9a573a8804204567cc141b8551b7675b06f7efbea79066497e"},"ros-humble-moveit-planners-ompl-2.5.4-py310h256e9aa_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h256e9aa_2","timestamp":1670848446273,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99a7bb8b7e752411592f44ccac6014e5","name":"ros-humble-moveit-planners-ompl","requires":[],"size":377565,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c3d5fe346aff8f11927635532aa6976991b928fbe41fdc6066197a2e1c75ea6"},"ros-humble-moveit-planners-ompl-2.5.4-py310h256e9aa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h256e9aa_3","timestamp":1675851560189,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"76e399e780f6be16ee2bda19591bec0e","name":"ros-humble-moveit-planners-ompl","requires":[],"size":372424,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a4bfa94ff394abf62c64c92177914e399ff71bbb893118e8f53b1da8ea2dfe6"},"ros-humble-ros2bag-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670844603507,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"28579972d037b000af74558f626ae13c","name":"ros-humble-ros2bag","requires":[],"size":27571,"version":"0.15.3","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09e97a6735fab88fad56c0172a464da843f8a5605bf2d30c6620412254f0dd46"},"ros-humble-ros2bag-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675851666420,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f78d204e1b6776eeac3b4ae0eae595e5","name":"ros-humble-ros2bag","requires":[],"size":26701,"version":"0.15.4","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bb128fe41dbda5e8e5856ff65ed3932b26136a6d744e26c934efa0628c9f2c0"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670848610224,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8f93907cab2a4ca432b1d01cbd977c51","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18079,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca24919c7aa94fb4ac865accbbd239e817f54a5fd835613f14f0f0a85795078d"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675852185584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"755618384d9010fd5efddc24d91086f6","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18443,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0d01acabb89a20af3e719d38b2dd8f94cb5475b2c89f6ce38cbe44085a614fd"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310hec30da9_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_2","timestamp":1670852385496,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c8cbcef7c66db80ccc3802a8f431e335","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":188330,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2895f50dd9911e99fcc07acdcaa3c5582a32375e792f14b1d86322c8ee085ea"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310hec30da9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310hec30da9_3","timestamp":1675853969736,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"41137425d8f22cc54033838b10f1edd0","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":188709,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33a358673f65243db7b0b939ed75c231f546907726b58a38f367248e3c2e886f"},"ros-humble-rosbag2-tests-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670848478722,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b7341044df8c79319186868a616b5a6d","name":"ros-humble-rosbag2-tests","requires":[],"size":11776,"version":"0.15.3","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f57f4e2b09f688fc06a63c88d960c61729382bc810a5c1f578ad5170d5c3f77c"},"ros-humble-rosbag2-tests-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675853661707,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4172ebb360aeb95c96e5f8e4f1fdcbbb","name":"ros-humble-rosbag2-tests","requires":[],"size":12064,"version":"0.15.4","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"784a11b1c8eaa73e8dbbb794d69e9d74c2d8d89e7b6301f5c506243ac9ef08f4"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670853467117,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"664769fa9db8bf0a8478fba64a02b814","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":279043,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a4f6a4edb2c45ac23fa38f49ac2629ba5b0dc3c2646cf2eb76cfea5c8a53280"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675854838064,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"71cfd9095b80b23ddcf61f7a3c1486cc","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":277730,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7395ced2650d39d4c07a11107ac726e60f921ae648a55bce96a29966d3fb5566"},"ros-humble-navigation2-1.1.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670853006344,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bf26355ccba4dbed32f0a8dffcce3674","name":"ros-humble-navigation2","requires":[],"size":13927,"version":"1.1.3","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7be29b642703de3395801e7d39516dd2a6290f3a1b157b6995989b840d840b39"},"ros-humble-navigation2-1.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675854369354,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1e78b9b623631c2b30c009f72e849432","name":"ros-humble-navigation2","requires":[],"size":14145,"version":"1.1.5","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b8224862d10cfb3fed832eaea5103708a1d5c1982bb3d6cc94ff02c902f7fa6"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670853581746,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"72c809f9f33dde9ea0aafa7b07bec8a4","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":23624,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b29c1ab9aa4c43f48eaadace3d6acd25a23415bb1de5f9de4a6fb346be2ee705"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675854956018,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"79d73fddac3d6a7de9901cde7ea0396c","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":23860,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27bf40ccbf77b33f080d7a6a36f21aa1e12f0d08390fb562ba986f517309d53c"},"ros-humble-rosbridge-suite-1.3.1-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-server","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670834859004,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4f1d4864d140a450379f930752622302","name":"ros-humble-rosbridge-suite","requires":[],"size":11791,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"711cacdbd6945387dc5487b8998489e872d41c8f8a3510ecdc2d90e3f0582e1b"},"ros-humble-rosbridge-suite-1.3.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675844750881,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f87c733e903b0788ff813c5a764a7d62","name":"ros-humble-rosbridge-suite","requires":[],"size":12081,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"067628d823f01b462a2ce747ecef2b1c494476fdf0b7541b1c00a5862cfd992d"},"ros-humble-nav2-bringup-1.1.6-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-nav2-common","ros-humble-navigation2","ros-humble-ros-workspace","ros-humble-slam-toolbox","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678332132049,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5d81554d7cc11abc2f9058d89031cf0c","name":"ros-humble-nav2-bringup","requires":[],"size":42569,"version":"1.1.6","binstar":{"package_id":"639653576e0eca100b8bb871","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a158847f8eb5c5a51172a084d825bfd0fc84cdb664a8b07c2655c114d261eebd"},"ros-humble-moveit-ros-visualization-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670855243667,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5cc51d498fd35f6e393df5aa79a0707","name":"ros-humble-moveit-ros-visualization","requires":[],"size":960988,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3dcca369cdc97e49d93976db85197c5c98679bfd7c2bc200449df704880b4ef"},"ros-humble-moveit-ros-visualization-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<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":"py310h927cc32_3","timestamp":1675856426836,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90f494ea506a167eee99450339ecd3dc","name":"ros-humble-moveit-ros-visualization","requires":[],"size":956843,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20888dd748cb73d6a68e6296354c7b44caabca63ff4c58acd2fe55d3d2e004a0"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670855407628,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"45c3a635572cc7b730d1d22c1a3d0892","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":227352,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b6e492044ca6fcb92ea1d81384ebeb30fab8e71b1612c291415b62c8182a55e"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675856558911,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c544b6de4c556ae8e09f809528ed0da4","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":226844,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"621ff1324dacae27051b7c78cfb6b6c8a3813952bdb9cb2e6176839b40cfe853"},"ros-humble-rosbag2-0.15.3-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670851248352,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb8ba1aad1e91eec0203b533b1c64ccb","name":"ros-humble-rosbag2","requires":[],"size":11845,"version":"0.15.3","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b93f7da237540cde92ff68f8d8fc1e38d882b081056a6793ae06290544d8d01d"},"ros-humble-rosbag2-0.15.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675855050611,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a70390575631e7d85f0c8c61e9baea2","name":"ros-humble-rosbag2","requires":[],"size":12085,"version":"0.15.4","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00c5e0cf8fc22dcc69897c7e4d852b7e352ee51b5f21b47bdc28ce01a555c356"},"ros-humble-turtlebot3-navigation2-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-nav2-bringup","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333653540,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"51e4a6f7f0384a62159b39ea69ab83cf","name":"ros-humble-turtlebot3-navigation2","requires":[],"size":23483,"version":"2.1.5","binstar":{"package_id":"639654cca2b7121008ec4d04","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ba0214a791ed955004481c0c24c88770a15d24b93eed0ab98e393609416894f"},"ros-humble-moveit-ros-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670857099064,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8e3ca937fcc5a2dddfe12a5ad78f9d0a","name":"ros-humble-moveit-ros","requires":[],"size":13474,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ab1b14fe662e70d6abac3b6cd34f6a1a096e63c1b3a8a0fb41512153991b5c9"},"ros-humble-moveit-ros-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675858287036,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"75adeb447df5585eb8b286f60a16c140","name":"ros-humble-moveit-ros","requires":[],"size":13679,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fd618a62bba2dc2aae21d2f1dbe209d5167e3cf551bb26eeab984dba03654d1"},"ros-humble-rqt-bag-plugins-1.1.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pycairo","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670852698254,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7a34c7d4a2753c19adb3719dbfc1db06","name":"ros-humble-rqt-bag-plugins","requires":[],"size":31703,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee56a888454ffbadbf883848309d7aeb35bf8077028b093e4c33c2e518e9913a"},"ros-humble-rqt-bag-plugins-1.1.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","pillow","pycairo","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675856651867,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"796af8c74fa5b42ab46f3fdf1ffc66cb","name":"ros-humble-rqt-bag-plugins","requires":[],"size":30935,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74d6a442ca06440fd31dd66a207950916c7260de3a1a17c309e8fe5e455aedd2"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310h91007db_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h91007db_2","timestamp":1670856968438,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3cf950282c6b16c03174dfe4d5855ff2","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":372993,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06b063a16a4bcdd3515c20a93ec93ae01a4af38537324937959a93a754989324"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310h91007db_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h91007db_3","timestamp":1675858075375,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"732ca97981d61b3ed36f9198a120c2e7","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":375003,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c0dfcb619b2ab0f530c97545e48ec95710cd8febd164702216d44ee1179ec7b"},"ros-humble-ros-base-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670852804025,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dd2a86babf6c8ec1523d9427224ffe00","name":"ros-humble-ros-base","requires":[],"size":12918,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f55e58da4fb6cdf9a4f12702303ceb4a0cd1108999620f93494b4ad214d89b91"},"ros-humble-ros-base-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675856733793,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9cc7da6640b9d0a7059f0b7aa3381acf","name":"ros-humble-ros-base","requires":[],"size":13151,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cfb6cf59410407cdacc18453a9af4addefa12ff200acdcfa7b532815bb889c8"},"ros-humble-moveit-setup-framework-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670856409960,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7424ed065359fe0ec1dc0acf9e4f42a7","name":"ros-humble-moveit-setup-framework","requires":[],"size":203912,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f128df5e90096c5f167641b2beb6758a837cc5b035e56f1eb5c90b3f93bc89e9"},"ros-humble-moveit-setup-framework-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675857490596,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"67e74ff0dea2af196184b3002b46c020","name":"ros-humble-moveit-setup-framework","requires":[],"size":205852,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d1d66ebaa8989b679d86040cb80d117d0da3bebbf1c42c9a8239e8290ff8016"},"ros-humble-simulation-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670854363382,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eedb2d4e4a47e774de4cb57f564af36d","name":"ros-humble-simulation","requires":[],"size":13881,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c0be18af5b371908edce3ed6e10ac38d20ae9c91eb85523ad3ccd21f751dba8"},"ros-humble-simulation-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675858378564,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4a0739f8a1b6e162129a558b61b5aa17","name":"ros-humble-simulation","requires":[],"size":14130,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9af764fdb2596bc3d6e66ba7b55046caa68646fa0297fb6b65730f7cb3ab3093"},"ros-humble-perception-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670854457413,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b98918e422b2bc69f8c2e1d1a5b37cca","name":"ros-humble-perception","requires":[],"size":13971,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"331d27ba12fda2661e328d514637383e1656a5f85fd71f121d7f6f2cf3f276bd"},"ros-humble-perception-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675857177335,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f5d762dfba0494a75c6f6acc0e5d14bd","name":"ros-humble-perception","requires":[],"size":14216,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6cc974b19c6237c85545f63294c45b7fb58c707828506f43ee420055a4079452"},"ros-humble-moveit-planners-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670859736099,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"98a7e113465f9e9fef4b0396e83e6aa8","name":"ros-humble-moveit-planners","requires":[],"size":12683,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"548b16df4bed5543bc1fec1e0406ab9219abc9aed1c0a9d14c22d828f1aa4936"},"ros-humble-moveit-planners-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675889148583,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1685a96c845c8d8a99fc189ca9e1eae9","name":"ros-humble-moveit-planners","requires":[],"size":12936,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e194a603736000c5794deac776682354492bce6d78e5b30b13690ab4bd2f89e8"},"ros-humble-turtlebot3-2.1.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-turtlebot3-bringup","ros-humble-turtlebot3-cartographer","ros-humble-turtlebot3-description","ros-humble-turtlebot3-example","ros-humble-turtlebot3-navigation2","ros-humble-turtlebot3-node","ros-humble-turtlebot3-teleop","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678333967293,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1d619c40fde93ca933c125427ea07d3b","name":"ros-humble-turtlebot3","requires":[],"size":14558,"version":"2.1.5","binstar":{"package_id":"6396588fa2b7121008ee6edf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f41c62139aa27a1646e93d3fe982e57aaf42466a520a3d855d57b898098a4207"},"ros-humble-rqt-common-plugins-1.2.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670854270410,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1737f089c60870fdf82052232dd4533a","name":"ros-humble-rqt-common-plugins","requires":[],"size":13552,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3c8ffdffc4d925a7a2a928f366f8bd06ec49ff99ae24ef7c438cd27cf1b8557"},"ros-humble-rqt-common-plugins-1.2.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675858190148,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5d4a439023a06accd6ff3d47d10e8b7","name":"ros-humble-rqt-common-plugins","requires":[],"size":13832,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48c2929168b4e812ed094d3df280cf2e9436c4402357ed29e176a54f58bc93f8"},"ros-humble-moveit-setup-controllers-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670858466883,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83a2fcc69f548bc58ec06c1099641cf5","name":"ros-humble-moveit-setup-controllers","requires":[],"size":166483,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"053881a8173d2462989a83857b9c50109c540d08ff083e3eb3919272c0463fca"},"ros-humble-moveit-setup-controllers-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675860984031,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6a4727a702e413d27927dcadfb4f3226","name":"ros-humble-moveit-setup-controllers","requires":[],"size":166841,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac73ff751848eac967979f40977a26d8c9ac3e76bca0b8c01757b647e8bc2ca2"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670858860274,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d98539660ff94258d5c4d2bf49aaf177","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":88273,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d0f9b5a323ba912bc037d5b00eef357ad2c4e8bea369bbbe0bad77ed72e0007"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675888366638,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7e2ef01a6d8930e1f730003ffec94172","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":88548,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b746210ac9539ef9497d57bd85ffc11bb750ea6f0c25d3014151608148533473"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670858006929,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"595499e42d1867daae5fb54d4c9ce582","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":73289,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bd3fb13e39b84c7301655d26c01993b5c64b2434a22e3897b520514c0dbd3bd"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675860458382,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d32fba15e2e30c9121c39d7e48be2f13","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":74646,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b20eb0430c61a088baad49d83f77f12fda0ea8ef09945ace6fe4dc5439b2dbaf"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670859635096,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"05319a4480815b93e8279144d026f454","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":341630,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15dc644f52a237903df80b8faf2e5768fe884daa26f103d7754a317fd6436d36"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675889029516,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"76877ae706a5339163b207398740df69","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":342642,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8b2e6c14f7625fb6e537d5b0ba6c8bd80eb8dfd325bb2ef40f5c2cac7aa7cd9"},"ros-humble-desktop-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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-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-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h927cc32_2","timestamp":1670856283285,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb8860d22c5d302b23eec3c926a252be","name":"ros-humble-desktop","requires":[],"size":15559,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"638de030dde26742569c53da91324affeaa7407ec4c2d9f5a7c1442060de40d8"},"ros-humble-desktop-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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-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-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1675889259823,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"01b6f255be62efbd93e883c2c5bc7813","name":"ros-humble-desktop","requires":[],"size":15735,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa9a6b0c972472c3ebc48566f61e086a28928a5037ce54c166021fb55967a71"},"ros-humble-desktop-full-0.10.0-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670857208095,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae021d10e01a5a86bc592fb2c58eb9e5","name":"ros-humble-desktop-full","requires":[],"size":15368,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e58e51be6e19ce2d34fae34db8e05235183b18555947406928eaf70eb17c324d"},"ros-humble-desktop-full-0.10.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675890642493,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a72d6e94ab024adfe9f56680d33a3898","name":"ros-humble-desktop-full","requires":[],"size":15586,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45fb73dfd2d4da7b48530676ac202d0e39931e78433b1068a7e1bccffc2167ce"},"ros-humble-moveit-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670860587542,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"56bb50f427c3d10364def289703527ee","name":"ros-humble-moveit","requires":[],"size":13695,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ecda213c81e57acdc803220383b8f69bae31bac56516558b05717567defcdce"},"ros-humble-moveit-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1675890798669,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"66821eabe1b58902b7e7a24224a9e76f","name":"ros-humble-moveit","requires":[],"size":13876,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5448026b9bd54006d681d1050e02e3c8ea0efc4e1c888d3ad67883a576144093"},"ros-humble-moveit-setup-assistant-2.5.4-py310h927cc32_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_2","timestamp":1670860480661,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae16089dd97ae26b2ffd359ac5af6d31","name":"ros-humble-moveit-setup-assistant","requires":[],"size":307608,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f5fd074a4c13842bbbc92bb3e59c84c214aca4d6b0747a2044b0984bc025737"},"ros-humble-moveit-setup-assistant-2.5.4-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<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":"py310h927cc32_3","timestamp":1675890444428,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c950ea624306e19717ddd33f0ca2f9a","name":"ros-humble-moveit-setup-assistant","requires":[],"size":308906,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"950881a6ce9297a18d1c55c56a0e893da557b4ad67c99155a1991f42ce3736ff"},"ros-humble-gazebo-ros-pkgs-3.7.0-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1677543899255,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0c3a3f4bfb4dcb5d9027a81534513b0a","name":"ros-humble-gazebo-ros-pkgs","requires":[],"size":13935,"version":"3.7.0","binstar":{"package_id":"63967fd44f66fd116f9dea7d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28f6bf764771ee8996a6f37703b3408a285208f7a6737ea3a490a66d8f37a214"},"ros-humble-turtlebot3-gazebo-2.2.5-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","ros-humble-gazebo-ros-pkgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h927cc32_3","timestamp":1678330473690,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fa3050bf952f7a3d146684d6f584f7c6","name":"ros-humble-turtlebot3-gazebo","requires":[],"size":238626,"version":"2.2.5","binstar":{"package_id":"6396923546bec18b890d6837","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45575037a1fc75c57d5c9a2fdf76f1a1e62e87c67a21ea05d5acf8a0def06484"},"ros-noetic-eigenpy-2.8.1-h0f4a31f_20.tar.bz2":{"build_number":20,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["eigenpy 2.8.1*"],"build":"h0f4a31f_20","timestamp":1674170856633,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d3a6aa7b202694bcc7ab68c94e78f421","name":"ros-noetic-eigenpy","requires":[],"size":3460,"version":"2.8.1","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f3c55bdfa3478d5f3665f13011bdd6755575b8fd69600fe8c8cceede72473ba"},"ros-noetic-eigenpy-3.1.0-h0f4a31f_21.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"h0f4a31f_21","build_number":21,"depends":["eigenpy 3.1.0*"],"platform":"osx","timestamp":1706494910161,"md5":"64e226af05f0d1c99fdfc64c7d8f9d24","name":"ros-noetic-eigenpy","requires":[],"size":3848,"version":"3.1.0","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"395d2ca601310d5efccc80095c96ee311e5e8605e2c768cb8ba0624e8c7a2a92"},"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":"arm64","platform":"osx","depends":[],"build":"noetic","timestamp":1674170812820,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b12384faad53560976e37896d0c2d3e2","name":"ros-distro-mutex","requires":[],"size":3647,"version":"0.4.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82da7408be5b1608c813b15cf24f2491f3bf5e77c232220ef997e741d37ed6bd"},"ros-distro-mutex-0.5.0-noetic.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"noetic","build_number":4,"constrains":["gazebo 11.*","ogre 1.10.12*","libpqxx 7.8.*"],"depends":[],"license":"BSD-3-Clause","platform":"osx","timestamp":1706494884561,"md5":"3246943f32c72ad72668ff7fcee336f5","name":"ros-distro-mutex","requires":[],"size":3993,"version":"0.5.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17f247d3e6accb334fe8e479146403ab11602995911dfdd84a85d45d4763eb0c"},"ros-noetic-ruckig-0.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674171338455,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0623e0cf94e1f2af4b9b1b92f4e7a534","name":"ros-noetic-ruckig","requires":[],"size":67421,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdc018ffb0ec961365e2870e896d005ede9d9aba1df48347359a93e6a02b38cc"},"ros-noetic-ruckig-0.9.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706495237058,"md5":"e6b04cc81b562b298656ef8c55a74a0b","name":"ros-noetic-ruckig","requires":[],"size":68939,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7111073bce6f36e3ec95669100ba618be60ee6baec251d4ad395f2d58cd5f16"},"ros-noetic-ompl-1.6.0-py39h2871a0f_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ompl >=1.5.2,<1.6.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h2871a0f_5","timestamp":1674172445407,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c5594ee215a326829efa614941f38682","name":"ros-noetic-ompl","requires":[],"size":1972182,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6763e74f453acaf4d546fad3b01743a660dc60de769b91e41629442d3808fdf5"},"ros-noetic-ompl-1.6.0-py311h367032c_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311h367032c_8","build_number":8,"depends":["boost","eigen","flann >=1.9.2,<1.9.3.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","ompl >=1.5.2,<1.6.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706496255493,"md5":"8240add6bdd3b077650decd0698410b4","name":"ros-noetic-ompl","requires":[],"size":2022300,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b9b83153611df55efa36951f02d7cc95cc68406eb6e6f51960f1098b82352c6"},"ros-noetic-catkin-0.8.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["catkin_pkg","cmake","empy","gmock","gtest","libcxx >=14.0.6","nose","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","setuptools"],"build":"py39h46ec4ef_5","timestamp":1674171168287,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90fc9fd829d8f1902f707aceba522e96","name":"ros-noetic-catkin","requires":[],"size":135361,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2fcb938613b6b7b2454a07fc3e7ada162e10c44b2710961d468c45c5417a0b8"},"ros-noetic-catkin-0.8.10-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["catkin_pkg","cmake","empy","gmock","gtest >=1.14.0,<1.14.1.0a0","libcxx >=15","nose","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","setuptools"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706495151003,"md5":"08375baa724e194873e490d489cf1776","name":"ros-noetic-catkin","requires":[],"size":161083,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a1ec18f78398ceb92bcfa0c1b2344137282576ff67e22da159b87251c4689b1"},"ros-noetic-roslint-0.12.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173054453,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ce1b8d5378afdddfc5c01e91f202e821","name":"ros-noetic-roslint","requires":[],"size":154625,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52f7211d9d206d4818a4318149279812acc7b76225d542430c7c806d8858836d"},"ros-noetic-roslint-0.12.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497249900,"md5":"8ec9f1607616e1e982dca42d96603ed4","name":"ros-noetic-roslint","requires":[],"size":200007,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e001462106dd3b73b2c6a308d7ff903f3a18911c134e9308cc3be6331756b168"},"ros-noetic-rosclean-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674172870026,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b61c1910adaf52c75d41576353af3209","name":"ros-noetic-rosclean","requires":[],"size":18307,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85314c64b6ab8bc53d5d87469847ade5ae89e97212021d2f7b8bf455035e5fc9"},"ros-noetic-rosclean-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497110296,"md5":"a90f9fa4fa2bed2cd08a4172b8d7fcb8","name":"ros-noetic-rosclean","requires":[],"size":21681,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0362a5abdc4537c1835789b793c2c2c98eb2607a2e269a12266a00296e3ea9e"},"ros-noetic-media-export-0.3.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173140845,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7b875524968680f110a462d6ab9544ef","name":"ros-noetic-media-export","requires":[],"size":10449,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90f627690e9ff310ec8c83df2b4089b4e6cc845ace751aa02343e4bc01b612f9"},"ros-noetic-media-export-0.3.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497325750,"md5":"0342b415ab5c7306fd9b310a57229fd2","name":"ros-noetic-media-export","requires":[],"size":11166,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd724ffdd19202e218950d207e00a7dae2c0b672c55a57999080bc9c5f72a425"},"ros-noetic-rosgraph-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","netifaces","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674172764489,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"acd002388f4e397ab46b9eb3f3936f91","name":"ros-noetic-rosgraph","requires":[],"size":56395,"version":"1.15.15","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b309114f76ae2272835df68cf9620a82dd72e643c1fb1acc30cafe0e9af4f529"},"ros-noetic-rosgraph-1.16.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","netifaces","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497032313,"md5":"57427c21232b5cb5814db2975738d4b4","name":"ros-noetic-rosgraph","requires":[],"size":72730,"version":"1.16.0","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1d16b088034bc45aea47ea775ab1fb4b1d4ee17c3d21fe4fa169946fd35ecc6"},"ros-noetic-urdf-parser-plugin-1.13.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","urdfdom_headers"],"build":"py39h46ec4ef_5","timestamp":1674172965013,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cfdeb95492c38c4ea5275d3736d21c24","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":11815,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9dd2c168c42ad652bd8525ad3c152ec653a782a05b8e7b9304c1d0b535a872d7"},"ros-noetic-urdf-parser-plugin-1.13.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","urdfdom_headers"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497182050,"md5":"1397fff4e18462776ffbc5f3707008d2","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":12551,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc02f881f340f7da7b752bbb86ca4f87839f9f541041e3699be102747a383242"},"ros-noetic-ros-environment-1.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173008091,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0cd58eeee9a5de95a87ea671aacab595","name":"ros-noetic-ros-environment","requires":[],"size":11950,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c08488174aa5bb23970492bc42d05f3feb94fbc1b3b8494998d1a0fda4c9a17"},"ros-noetic-ros-environment-1.3.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497130771,"md5":"a5e3e7e628f0c1db973bd52caed26914","name":"ros-noetic-ros-environment","requires":[],"size":12686,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f02790bb9db049b24e22f7f683106c8092e681121fafe7059e6b804e8fbd005f"},"ros-noetic-rosmake-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674173191332,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"90514610d59d88b972b04511e856a68a","name":"ros-noetic-rosmake","requires":[],"size":40204,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e56e23d5f5a9307243dce80c75574d6c91b8f9fdb29c8587ba4017148974ccd"},"ros-noetic-rosmake-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497284162,"md5":"4e0f7de695b2f7bad30dd8564976f90e","name":"ros-noetic-rosmake","requires":[],"size":54388,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17b833d2bdc35b778a5867e050fbeb4e50f94ad9f82c66b51090da18cc7c0c1d"},"ros-noetic-genmsg-0.6.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["empy","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39h46ec4ef_5","timestamp":1674172922886,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"50b35b0c86dc585d7775bcf14b885044","name":"ros-noetic-genmsg","requires":[],"size":43840,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37323b007bbb3efd523d662263c20c4ec55dd46bdcdfb658acb92af23a3d274b"},"ros-noetic-genmsg-0.6.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["empy","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497059407,"md5":"5e53b56edb11f98ba81a1939c74051a8","name":"ros-noetic-genmsg","requires":[],"size":53919,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89fc1f4ae0a19cdf2099cd8d13c3c90875ae8b26c64fe93f12d8130594862f88"},"ros-noetic-cpp-common-0.7.2-py39h112d239_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h112d239_5","timestamp":1674172829269,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ff4e9deb97fad349532c4f5713b694ec","name":"ros-noetic-cpp-common","requires":[],"size":30568,"version":"0.7.2","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"092445ffe958d25cef1cc58d0c3627e0991ccf5988ce96a5a037f89b4c4df3fc"},"ros-noetic-cpp-common-0.7.3-py311h00a3625_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311h00a3625_8","build_number":8,"depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706496984166,"md5":"737e75d540314e9d829c4c3ec03e208f","name":"ros-noetic-cpp-common","requires":[],"size":31709,"version":"0.7.3","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce2181ad6a864c442f12bc0c3ed271c6b2e62d6ece856eb8a866406d976389ca"},"ros-noetic-cmake-modules-0.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173094400,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eee73ac76a956da2cb68625366431c90","name":"ros-noetic-cmake-modules","requires":[],"size":23035,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a754427a81ea9752f3404b55a3faa3dbc341fce4688eefdf169e1780dc5edf3"},"ros-noetic-cmake-modules-0.5.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497195464,"md5":"506f6ec09855317ec323db55802c9738","name":"ros-noetic-cmake-modules","requires":[],"size":23705,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0825c3e8f32f2e025fb826a7f874899ead8897e8e84caa86e5489ce2bd9dc33"},"ros-noetic-octomap-1.9.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39h46ec4ef_5","timestamp":1674173267168,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4e37d2ca0d5fb507ae6a7726c447bb1c","name":"ros-noetic-octomap","requires":[],"size":296202,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a129024fb7bb31d003f8a5cee6793219cbb6bbfa14a11287a0fa6f0a55aeceb"},"ros-noetic-octomap-1.9.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497383969,"md5":"254829e8e88b41bd6b6cb2e370f3a965","name":"ros-noetic-octomap","requires":[],"size":300803,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"842338a9239773d794d93f32a6e5f9602a6c6d90d02bcb488d98b97efcf58e3b"},"ros-noetic-rosbag-migration-rule-1.0.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674172778160,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"59c1098db5ff5505a0f764a45974bdba","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":10495,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e2bc2e0de26ae218bf9f4f6164bb3769c0ffe5d4c665ddf4638b50d0c41825c"},"ros-noetic-rosbag-migration-rule-1.0.1-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497205354,"md5":"232bf3d60a861c6b09c9d0679ede91d4","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":11210,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2f619b9683052c1b66c3b7a4292513ba4f1fb492fa1ed280bc3526393a625f4"},"ros-noetic-random-numbers-0.3.2-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h83befe1_5","timestamp":1674173067512,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"427aea88786a88c0f9ae3356bcdf5074","name":"ros-noetic-random-numbers","requires":[],"size":29930,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cb022bbd86906f5b766f8f0f09da5fb9a4849f29ec683966dd8d1ba72e9a970"},"ros-noetic-random-numbers-0.3.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["boost","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497501630,"md5":"781bdf144a95aa32ef28618fc52902ab","name":"ros-noetic-random-numbers","requires":[],"size":30937,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9775233342a8663be47543f6760ac7b0b51b9e69aa8c1fe0992a86e1097014c8"},"ros-noetic-moveit-resources-panda-description-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674172886132,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"49d6263833edf2ba1ece1114f9f15960","name":"ros-noetic-moveit-resources-panda-description","requires":[],"size":3801671,"version":"0.8.2","binstar":{"package_id":"63c9c85f0273ee116afd3b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed1c6f92dfa1eea0d939e2372d10ab08ca2a31e7cb86efbcdaf9696b1c5caac6"},"ros-noetic-pybind11-catkin-2.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173358408,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"04ea84726e820d653e033840b5c3aa04","name":"ros-noetic-pybind11-catkin","requires":[],"size":123290,"version":"2.5.0","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d1a1ecc97d55a14eff25b4166f1d8b468f75369b1dd2acdb50a32d8c3a72eaa"},"ros-noetic-pybind11-catkin-2.10.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497577828,"md5":"0c4c746867d33b7da8a08314374ec8d1","name":"ros-noetic-pybind11-catkin","requires":[],"size":157306,"version":"2.10.3","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c74a75dcca9385cb17121c9cac003afedb3b19a7fe3e10be811257ba69a62a4a"},"ros-noetic-moveit-resources-fanuc-description-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173002364,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d4af14ff2e801ae2795fd7e097e90565","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":187244,"version":"0.8.2","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69b2e9aba9f75af471f22f24a63c415887309c1837ac61256b8a93ef3006a516"},"ros-noetic-moveit-resources-fanuc-description-0.8.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706496878383,"md5":"59fa8023a0f18002e4705235491c9df6","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":187771,"version":"0.8.3","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"785fbc9c51944bef31041a3f3e3eb7427d09a821e95e001af4581c1d57d2c81e"},"ros-noetic-gazebo-dev-2.9.2-py39hc0211de_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gazebo >=11.12.0,<12.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","tbb >=2021.7.0"],"build":"py39hc0211de_5","timestamp":1674173284050,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5b30742cf6f9997da8dc03786660bb69","name":"ros-noetic-gazebo-dev","requires":[],"size":13690,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a2c8ffb395208d269268d6cc94520ff965721152890b36631f7d151235cfd32"},"ros-noetic-gazebo-dev-2.9.2-py311hffdb928_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hffdb928_8","build_number":8,"depends":["gazebo >=11.14.0,<12.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","tbb >=2021.11.0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497141811,"md5":"19c468f0e27e67c86774c18de539dc35","name":"ros-noetic-gazebo-dev","requires":[],"size":14858,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c305a8b1215afaad9519d2d6d8156d61dbaa2fd31c7e4494e6d046b611db8492"},"ros-noetic-smclib-1.8.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674172902666,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e32283026ea03ecf9bafa185ac76cc44","name":"ros-noetic-smclib","requires":[],"size":19241,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fc58d0d6019de11cd3b3b2057005d996042d2779c752da2d127e5070047ca13"},"ros-noetic-smclib-1.8.6-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706496948310,"md5":"6f024e018b1e34c4bf0fa0b8a227baee","name":"ros-noetic-smclib","requires":[],"size":20890,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7afa9d25203b6e8c9167c4ce4f7b91cf627c7cfcbeaeb8b69b238ced0c41a6af"},"ros-noetic-moveit-resources-pr2-description-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674172783929,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c48025e31afd0e9d0f3522ffd780cae4","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25893888,"version":"0.8.2","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44a720a507e60474ff5c6d5f2a3556381367a40e20b1b43dc9debf78d511595b"},"ros-noetic-moveit-resources-pr2-description-0.8.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497652743,"md5":"aa4da58d0eb781eb7873972408a7fb0f","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25879702,"version":"0.8.3","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffde54dab84825dbb74abeb1d0e1a4311c58a4663950732d384a9e41549045fa"},"ros-noetic-smach-2.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674175933155,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0ed1b66415c3514a8c2a191a9ecd225","name":"ros-noetic-smach","requires":[],"size":42860,"version":"2.5.0","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b43b72443a3feb4393a71d0253eca6d6f5d862df9447f54bfedf9f98ad47b27d"},"ros-noetic-smach-2.5.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706498748266,"md5":"67724b698cba9d1df8e0eba0ad1bf6fc","name":"ros-noetic-smach","requires":[],"size":56407,"version":"2.5.2","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1be524c24f1ef1bc07d1ecde460dc7b3c7bd5054f5a4fd33cda2be9450ae847"},"ros-noetic-gl-dependency-1.1.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt","pyqt-builder","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674176041129,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d35ff1201cbd029b8b4b1af8fa21044e","name":"ros-noetic-gl-dependency","requires":[],"size":10848,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2abbe2d92edaa0cfe60e873963e349637829a1e9569305232d6f3080c8559eb"},"ros-noetic-gl-dependency-1.1.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","pyqt","pyqt-builder","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706498821048,"md5":"47ca8acea74f09d6787191a7861d290b","name":"ros-noetic-gl-dependency","requires":[],"size":11556,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c62ac6e87f1a265624627a8a391af2f7a82069590d385f3838334adda62f025"},"ros-noetic-openslam-gmapping-0.2.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674174763991,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d7871b6cc65ae59e949c37ecbcd5a1af","name":"ros-noetic-openslam-gmapping","requires":[],"size":209744,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4de2219273ab2465123669d80a95b88f5db89b64ce3e2b990c104ec8b9d48216"},"ros-noetic-rosboost-cfg-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674175525219,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"32e9af4d622e05f13f16f43a24e8a84d","name":"ros-noetic-rosboost-cfg","requires":[],"size":20433,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d792aaafad854ac506ab1ebd97d8e2bf744f74a35e001bacd3d4c1d2c969ac0"},"ros-noetic-rosboost-cfg-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497513880,"md5":"980cb20f943dd2c47c72b94c4005cd7e","name":"ros-noetic-rosboost-cfg","requires":[],"size":25357,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"042e1e6899e483c0e3546d2c7b3b80303ad7f461e8a320022abda0e48fb7cb7e"},"ros-noetic-qwt-dependency-1.1.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674175600295,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9d2e6b43bfd74de8eae22015a9e123b","name":"ros-noetic-qwt-dependency","requires":[],"size":10488,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91acc2ffe5838673d0ad4324c1473a862f798143e554b45e7cea9a5dbd7218ea"},"ros-noetic-qwt-dependency-1.1.1-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497296892,"md5":"2f6db1a46a59f3b8c4d66c69b7e1120a","name":"ros-noetic-qwt-dependency","requires":[],"size":11207,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"472c8a9d082e0fbcda85dee0fd25ad1816dda181a9ad31115efa8b80a8974bf6"},"ros-noetic-code-coverage-0.4.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["coverage","lcov","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674173396930,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"af7c472d677cb908a3ed4f36d5b174df","name":"ros-noetic-code-coverage","requires":[],"size":13691,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d3d7ef09fbdd0d2fe9723565ed8caef25bd52ac43b3e2faad693a602dd2506c"},"ros-noetic-code-coverage-0.4.4-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["coverage","lcov","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706497227503,"md5":"e42f5e23736ed8b85bb353ea8e179568","name":"ros-noetic-code-coverage","requires":[],"size":14363,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"384f9109f5f5cd13f3dfb562ef94bcf98438dce98e1667a7d04b116a3bd3db0a"},"ros-noetic-libg2o-2020.5.3-py39h692d9da_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h692d9da_5","timestamp":1674176278572,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ec744e935e019f55330e40a01a24221f","name":"ros-noetic-libg2o","requires":[],"size":1519830,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4b2da0c4eac3d739f3a99b73c3c637474f781af23899cb535874d736a79930d"},"ros-noetic-jackal-simulator-0.4.0-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-noetic-jackal-gazebo"],"build":"py39hae387e0_3","timestamp":1674459951863,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3a853ad5c5632879ff9f9fee62e99c72","name":"ros-noetic-jackal-simulator","requires":[],"size":11559,"version":"0.4.0","binstar":{"package_id":"63c9cb4668b198bb95958d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b08f9440ab1a7f6b8a9527c36e935adfdb0c9f21414d5f725f1e9e00cf603f4e"},"ros-noetic-genpy-0.6.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674174858485,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"041a013650e6b97683d6582674f33903","name":"ros-noetic-genpy","requires":[],"size":60395,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d32be37463d3f32431a3acc67a3b5f0aaafa8570d03187f9b29feceb595086d"},"ros-noetic-genpy-0.6.15-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499285628,"md5":"b93a5732353ccc97ba296b8774e40c39","name":"ros-noetic-genpy","requires":[],"size":78354,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8495e13fe9f5f72803bf9036ecbab429ae5d02862aca7e2b0bd9615da8d22326"},"ros-noetic-geneus-3.0.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674175143790,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5be4408b49cfd18e578d647040306c11","name":"ros-noetic-geneus","requires":[],"size":32821,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ffe24c1f42695d95dc475072d2858d84e2f5e67de9cae0234b3ab4e6a8fad9b"},"ros-noetic-geneus-3.0.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499513654,"md5":"0c14275267538912e61e5c58f7f7cab5","name":"ros-noetic-geneus","requires":[],"size":44782,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70068dae5e6cacfb6efa3c18c302afa765611af8d979f81eab76ac66c4e63728"},"ros-noetic-rostime-0.7.2-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common"],"build":"py39h2335ed2_5","timestamp":1674174755513,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a93fb614560c17524783d2bf8e72222b","name":"ros-noetic-rostime","requires":[],"size":46238,"version":"0.7.2","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39add20c27ab34af7dc92a0b6d4f36fbd96ad8f72396739934ea31f4ba36a294"},"ros-noetic-rostime-0.7.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["boost-cpp","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499206675,"md5":"36729e9116e0f357e000fc31dc96576b","name":"ros-noetic-rostime","requires":[],"size":49196,"version":"0.7.3","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8b081ff78ae620b3103147a8f311a4a208ca16520d9517894dd4616a507ce88"},"ros-noetic-gennodejs-2.0.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674174949882,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc89ee1b5bcf591f36a664a9508f70fd","name":"ros-noetic-gennodejs","requires":[],"size":29961,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a4e833e6ece11ef69af035df24f5ef3ce73c72cd0e0836edf1d2288be1f71eb"},"ros-noetic-gennodejs-2.0.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499359511,"md5":"dfca319ed240c41c61397160cfb1ae67","name":"ros-noetic-gennodejs","requires":[],"size":41211,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"555f54ea144ff26eaff7a3f281c2a632438694dceeef142d98dceeaa8040fd81"},"ros-noetic-genlisp-0.4.18-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674175043864,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"26a4972718a48b2540c97189244c7c01","name":"ros-noetic-genlisp","requires":[],"size":31214,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bbf9ee949f343f7c991dff577b39299267ca17a1e78e5eb8bc3d338645df31f"},"ros-noetic-genlisp-0.4.18-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499432270,"md5":"db749b7961004031c7d7d0fc5e147e9b","name":"ros-noetic-genlisp","requires":[],"size":41434,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7002df47ae2424d843ad8ab2721c263d6e416890fd6681cab0d4b6d3f057388"},"ros-noetic-rospack-2.6.2-py39hd766fea_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python 3.9.* *_cpython","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":"py39hd766fea_5","timestamp":1674174880693,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ed85f422c00b1c7a4ab79e7bdfbf8601","name":"ros-noetic-rospack","requires":[],"size":106541,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"650758c7523d81141ed2bc81b39f46a385f94f698240229f4d06bc38d9afddd7"},"ros-noetic-rospack-2.6.2-py39hd766fea_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python 3.9.* *_cpython","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":"py39hd766fea_6","timestamp":1681946752391,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a6efc3704a2e80766fb6df85e864d9f4","name":"ros-noetic-rospack","requires":[],"size":107768,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f9adaa0e4394e65476bdaa6af349a89df1b9f661c3029fc9f070098b0f3b478"},"ros-noetic-rospack-2.6.2-py39hd766fea_7.tar.bz2":{"build_number":7,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","catkin_pkg","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pkg-config","python 3.9.* *_cpython","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":"py39hd766fea_7","timestamp":1682561009208,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3a31c5996eccf6a2cd21f3e14410f38c","name":"ros-noetic-rospack","requires":[],"size":107734,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"240547dfead8b96d20b1f1b48445558519a9f5a65716304952ea1fb31ff3aa7d"},"ros-noetic-rospack-2.6.2-py311hb90db5c_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hb90db5c_8","build_number":8,"depends":["boost-cpp","catkin_pkg","gtest >=1.14.0,<1.14.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","pkg-config","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499275599,"md5":"eff66145c5564d380a8c1fd9f689d0fc","name":"ros-noetic-rospack","requires":[],"size":115456,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6243eb2b145d33216f6935185234f54fb75f5cb20169a5e082b26c18b1c061d8"},"ros-noetic-rosparam-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39h46ec4ef_5","timestamp":1674175110107,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"815659262c0ba3953634b64d2fc7aa62","name":"ros-noetic-rosparam","requires":[],"size":24347,"version":"1.15.15","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"159a277910f23b15ad222c33c52472ffff36c699b41fd3dd92fbd267936ceaa4"},"ros-noetic-rosparam-1.16.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499457430,"md5":"c4e1de54430b98e629c2b4e4c2c43731","name":"ros-noetic-rosparam","requires":[],"size":29777,"version":"1.16.0","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1611898a46a2f22de2caaad8d4b8bc6f45baec8170bcfb1fde61064e8834056a"},"ros-noetic-rosmaster-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["defusedxml","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39h46ec4ef_5","timestamp":1674175225598,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a12cad5c3b4afc95b699aa63bb578bd","name":"ros-noetic-rosmaster","requires":[],"size":49727,"version":"1.15.15","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f96eb5882fb4162f3031071d2c7ec0a560e2fe75067cdff8116be2723394beb3"},"ros-noetic-rosmaster-1.16.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["defusedxml","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499553551,"md5":"cad752075fce5a6a5dfd2c72682a5460","name":"ros-noetic-rosmaster","requires":[],"size":62911,"version":"1.16.0","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cff12d48bd72496493c6db0eb279f650305292591a2fc9b20bc78bd8f232d4a"},"ros-noetic-roslang-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674174989150,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f1b631aea1c0bbe15fdd4ac3666cb663","name":"ros-noetic-roslang","requires":[],"size":11343,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d80b4991b1ed373386aa10486d5c9125f0cbab89c654b1f50dadf441316d9aad"},"ros-noetic-roslang-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499357346,"md5":"da835e2f0cea85e5bedd745d64fb7979","name":"ros-noetic-roslang","requires":[],"size":12090,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14c101951c074282632fb0a278a253db3898d9ae74962d157f204c101b8897ce"},"ros-noetic-gencpp-0.7.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39h46ec4ef_5","timestamp":1674174687417,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d05cbf700dbd9d26e27eedf01004f52a","name":"ros-noetic-gencpp","requires":[],"size":21899,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5cdeca55936837767516ee8526dc337495d67fe6b8573da2cd5f8fdb09ce9f2f"},"ros-noetic-gencpp-0.7.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499129938,"md5":"a99562ce122995b7f7e134a0272a3bb6","name":"ros-noetic-gencpp","requires":[],"size":24479,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71635b493b1867769e012a8c16acf3e21ed7a8583fbe0e55783b8edf1dd5d396"},"ros-noetic-eigen-stl-containers-0.1.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674174863326,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"534a81630fc94d2c8bb218c052ec6ec2","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12609,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"664807e74288c94f881551c47b48bfc47d0cf96de82270f8f413982368328f41"},"ros-noetic-eigen-stl-containers-0.1.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["eigen","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499799312,"md5":"d41fe65b7e10a2b7b23bdf1bc365cb7c","name":"ros-noetic-eigen-stl-containers","requires":[],"size":13328,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4146bd0bb719e5785fbe5046c36dfce9acc6a71b3fe2da3602657f58a8f40469"},"ros-noetic-xmlrpcpp-1.15.15-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h2335ed2_5","timestamp":1674177231265,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"97a10fbef3eaf3e8a6dc5873cd831e82","name":"ros-noetic-xmlrpcpp","requires":[],"size":68107,"version":"1.15.15","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2377d943e754a08381f4a5db5d8605e509a842e88dce3fc7c48b55b7293cf7d"},"ros-noetic-xmlrpcpp-1.16.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500417930,"md5":"41a6d8ec80cc12f8f2e27181c452ede5","name":"ros-noetic-xmlrpcpp","requires":[],"size":69420,"version":"1.16.0","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"215feaaa35230aae6e35f19a595fe9f0d47049ba32d76cc83e18ca3e979a3adc"},"ros-noetic-roscpp-traits-0.7.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h46ec4ef_5","timestamp":1674176733306,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"72b8f1a685d778fe824ec93e02bba074","name":"ros-noetic-roscpp-traits","requires":[],"size":16481,"version":"0.7.2","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dfa0db9a7793eb86682eb93c573acd1fd5fb261a676470272ddf5c6546f655b0"},"ros-noetic-roscpp-traits-0.7.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500054770,"md5":"3396bb7ff884942424505fddcb92078d","name":"ros-noetic-roscpp-traits","requires":[],"size":17269,"version":"0.7.3","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3dda2b66d352ef604390b7a77ae7d2c97e14ff7f7239adc8d07264577447abae"},"ros-noetic-message-generation-0.4.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674176841208,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6436c6fdba75c8243a4e320dcc6942d9","name":"ros-noetic-message-generation","requires":[],"size":10796,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8a1275fce21d0dc9079a6ff1a21f16a287a03ed8f813fd51a99f581c5b7c3df"},"ros-noetic-message-generation-0.4.1-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500123850,"md5":"231eb10da5fb5d324f78720e42b17230","name":"ros-noetic-message-generation","requires":[],"size":11518,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6050f42cffcb11b96fa9e284d02c59dfea1ef763b98681d4f434212d50ab3c0c"},"ros-noetic-rosbash-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"build":"py39h46ec4ef_5","timestamp":1674177391689,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a98973b5c799ab2209f0cdea6bc2f200","name":"ros-noetic-rosbash","requires":[],"size":27065,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ec43ebdbcdd076cdbfdbd4e3e8ed2e83710b54ccd5a0b083609b101d0ceab1f"},"ros-noetic-rosbash-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500527039,"md5":"208aaaf973e8e8fbac80cff649511d94","name":"ros-noetic-rosbash","requires":[],"size":27866,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9d0f328aa3027a9306c4749cdcdfb746f3c41665efcdfdf4f6bbd522a52b4d1"},"ros-noetic-roslib-1.15.8-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674177039733,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e29e4669d6bab61edec1c7357c6b6ec3","name":"ros-noetic-roslib","requires":[],"size":100857,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f749597b1116b68e883fdf731ea63fedcca94c4e368cf5d31457cdf9055bfcb1"},"ros-noetic-roslib-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500262376,"md5":"7d6bec2a034123a6b9b62d199820f2a3","name":"ros-noetic-roslib","requires":[],"size":125741,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32645254d08dfea1914c5f4801e4434a7858171076e34a959e67c47c771184da"},"ros-noetic-rosunit-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674178327428,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e04042e2d819eb78576711ddaea44458","name":"ros-noetic-rosunit","requires":[],"size":57945,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"995489891219fe169a157c7541b9541666fc9dc5a82446ebbfca7db4dfd00192"},"ros-noetic-rosunit-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500898941,"md5":"c5caa0bfe911b6e98cbe9e0272ffff27","name":"ros-noetic-rosunit","requires":[],"size":77210,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02c8decc46ee8b2e4dc4d825cdbf2fa20f9821571307f7402110ae2b077d3611"},"ros-noetic-roscpp-serialization-0.7.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674178213400,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4df960db247bcc61a73a899200fe98ae","name":"ros-noetic-roscpp-serialization","requires":[],"size":18787,"version":"0.7.2","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6fb10db6fd45c55abcf2657cc6422d22f65493d7bdc0d681c7914b612c12c70"},"ros-noetic-roscpp-serialization-0.7.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500813082,"md5":"d743f770fe0072f8fd5b7ad212e8c9f8","name":"ros-noetic-roscpp-serialization","requires":[],"size":19880,"version":"0.7.3","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"348267dc3b320bcf59fb65311175aa06f47355d76c11396bd087fad5d91a399d"},"ros-noetic-roscreate-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674178423437,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f0ddd21174daeb211256fee9c235c98e","name":"ros-noetic-roscreate","requires":[],"size":18906,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52197d49e99d756b6818da758d646815c16591e534cc370502a2cb792d795f1e"},"ros-noetic-roscreate-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706500973061,"md5":"d794863877bc7048693ac1ea90329bf0","name":"ros-noetic-roscreate","requires":[],"size":21607,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2006c5a5e800776dc11a3c500cdb4d453e7a2680e90493a8a01deda823aa17b2"},"ros-noetic-roscpp-core-0.7.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674179504696,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fa671bb149376492d173e27b0b03a780","name":"ros-noetic-roscpp-core","requires":[],"size":7592,"version":"0.7.2","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e94c0f62fe67561d71c64fee885a57f684b08ea9637fa837c9b49d1fe32d2f5"},"ros-noetic-roscpp-core-0.7.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706501560099,"md5":"4884aee3b41660526ed9cdd391857850","name":"ros-noetic-roscpp-core","requires":[],"size":8382,"version":"0.7.3","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e40799b0b89ed3f5e5f3cb53be8b6f0e900f247850b470cc16db3f32c771afde"},"ros-noetic-roslz4-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","lz4","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674179272375,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"06730dc303ba3fa6b8f55720c7f09836","name":"ros-noetic-roslz4","requires":[],"size":23697,"version":"1.15.15","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d302c8a3d233c6b91342b0a4e3e5abb9b7dcf8e3f19efa29a66cc391d5ece7f9"},"ros-noetic-roslz4-1.16.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","lz4","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706501369723,"md5":"9c55c5a891048e72e4ce50247dadca92","name":"ros-noetic-roslz4","requires":[],"size":24660,"version":"1.16.0","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"334243e920402ca69a09b6c89f6ccc7e68e62e4c3220727bd271730cebbf8aa8"},"ros-noetic-message-runtime-0.4.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674179084598,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e6334585248501abb2aeb54c62cb2a12","name":"ros-noetic-message-runtime","requires":[],"size":10913,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83d4ed7475805d7643e752a62d34ac46bd85aab07655887983ca34efb69f7cf7"},"ros-noetic-message-runtime-0.4.13-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-genpy","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706501223392,"md5":"e4ac63325ee7515e3fed0d97366b080b","name":"ros-noetic-message-runtime","requires":[],"size":11646,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6cfe213193b8fe4d3d35719e1c72a697cb7ecd1d0c920895fed7fe26b4db1d4"},"ros-noetic-angles-1.9.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674179397360,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"877dbbf6555a3b1c4cb18e82948420b3","name":"ros-noetic-angles","requires":[],"size":18769,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93a6521ad900bc0cb308f88b0cabbd72bba5d89100a44406f9f60c0a38e3b2e6"},"ros-noetic-angles-1.9.13-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706501460416,"md5":"17ea848e4ba815c1c5867251211b0b69","name":"ros-noetic-angles","requires":[],"size":21193,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aafbb8d5a8af7a87b21944e21081267d9c1d2371a4eb1f1411642f8093a31812"},"ros-noetic-rosbuild-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674180166431,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0206a74e6c0d3f34800ecdd349fe07d8","name":"ros-noetic-rosbuild","requires":[],"size":34938,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84b4269795d3fee6294ad3def45e7a832a6a09f606fbb5ed4c6126b50ae6f8d7"},"ros-noetic-rosbuild-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-message-generation","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706502454488,"md5":"03ada8f278ae7b0a56073595fd0d2939","name":"ros-noetic-rosbuild","requires":[],"size":36762,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25888ab18e300663ec28dcd6d5a7b189f5d837dc90698d93daefaf7413715a6c"},"ros-noetic-rosserial-msgs-0.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h46ec4ef_5","timestamp":1674180450766,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ecbd127b29c2fddb585987c1e49e410e","name":"ros-noetic-rosserial-msgs","requires":[],"size":32440,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"546541103f139ecdcbc8246c978067e1bfdf8178ce394e3d9771f1d7cce0169e"},"ros-noetic-rosserial-msgs-0.9.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706502688183,"md5":"2c107a09eef0c60d1b3e226158ad93de","name":"ros-noetic-rosserial-msgs","requires":[],"size":36741,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a80e27b34ee822dfc28be10d517b78854a1d4d52f18c7598baa2509c4ee048fc"},"ros-noetic-std-msgs-0.5.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h46ec4ef_5","timestamp":1674180050463,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0a13194955645753216c8eba25a63037","name":"ros-noetic-std-msgs","requires":[],"size":74740,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d9862b142c8e3f2d5afe589c3c2dfe298ae20b82dd0a90a2223a8e49ec38676"},"ros-noetic-std-msgs-0.5.13-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706502337626,"md5":"486230dddcf446f37bf7fd8fff51b1f9","name":"ros-noetic-std-msgs","requires":[],"size":84213,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87d8ddb9483dfd3e3b31896fe37c309c0562fae0fb2974ede4e1f684df99e500"},"ros-noetic-std-srvs-1.11.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39h46ec4ef_5","timestamp":1674180306494,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d2ec8d7a65dd23f250bdb52bab21da41","name":"ros-noetic-std-srvs","requires":[],"size":28345,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba082c3afab8cdd4cc2d3747c1d4243f3cb2b8c311960f11bd1ca2d6f91c6d23"},"ros-noetic-std-srvs-1.11.3-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706502565284,"md5":"50a600fb994d98875d955a975f1fdd4e","name":"ros-noetic-std-srvs","requires":[],"size":31654,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"832e64319412cb9366801f63f750c82239f2e76eba62a9083d0f8efcd4307f2d"},"ros-noetic-plotjuggler-msgs-0.2.1-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_6","timestamp":1681695880509,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e13208055dc4c52116c9849815d00311","name":"ros-noetic-plotjuggler-msgs","requires":[],"size":34561,"version":"0.2.1","binstar":{"package_id":"63c9d24eb23346582ca04240","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5241641d4a92e1e1dbf42691c494c5ae5fccc8e51e23666c4016a56e7dedb4c6"},"ros-noetic-rosbridge-msgs-0.11.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674180844293,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e817a7dac47ed9b63b0c8c8b7a905f3c","name":"ros-noetic-rosbridge-msgs","requires":[],"size":23952,"version":"0.11.16","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b04428bc69bd310154eb702dfe77804dc7c716a50629843f955761cc0915144"},"ros-noetic-rosbridge-msgs-0.11.17-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503172053,"md5":"a99c14fe3484535ec38f04644cb2d705","name":"ros-noetic-rosbridge-msgs","requires":[],"size":27179,"version":"0.11.17","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"271ccac0c00221c06c969af87b403a5b137fc2c6aaa04e056b46c0db17c41940"},"ros-noetic-jackal-msgs-0.8.5-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hae387e0_3","timestamp":1674181261917,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2470552e892d87fc0dc91c9e7ac8fa8e","name":"ros-noetic-jackal-msgs","requires":[],"size":39108,"version":"0.8.5","binstar":{"package_id":"63c9d2abdbdf733521f38072","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fd407d8913f74dc6a39b5562753a37b040f913fa4f6cce0c1769a837e14d621"},"ros-noetic-turtlebot3-msgs-1.0.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674180979843,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a955fdd3760152f87a6291f5258c6c67","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":31788,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a63d5281c39afb3872daeb202e5304a5eec7ea8803a0dc93dc776241d10c407"},"ros-noetic-turtlebot3-msgs-1.0.1-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503065670,"md5":"4445b544fd19ed86099d28b422c42d16","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":35458,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f050cce35982a2ba42399a1a55534713803177e17a90e339d1c26d97a2338ec"},"ros-noetic-nmea-msgs-1.1.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181133935,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6f16a12820dcbef07ddaed227a839f2b","name":"ros-noetic-nmea-msgs","requires":[],"size":45320,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2f25b34632e8b920f92c676d70a6cc9c6c03db50bb21950f06b0ec03fd85aa2"},"ros-noetic-nmea-msgs-1.1.0-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503295889,"md5":"0092ba1d583a6a6637eec1aaaeeff689","name":"ros-noetic-nmea-msgs","requires":[],"size":51168,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df3ff940c913e39279c60549df1b64b8f0dbea2353f7f5a5aa397e1da7751a79"},"ros-noetic-diagnostic-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181453391,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"73ee81437e3d9a1f29db913377604453","name":"ros-noetic-diagnostic-msgs","requires":[],"size":41406,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56eaa7840ddc43e286c36d7f6ad38379d8bd185b392d3881c5c269cc3be4ab0a"},"ros-noetic-actionlib-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181319047,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7b0734787784200196bf4a98950ac945","name":"ros-noetic-actionlib-msgs","requires":[],"size":36120,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4f0f1670f611e6021f765abed80acac389a55d2f35be50be35c69e2a1e8e556"},"ros-noetic-geometry-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181191352,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e8ca544eb78aef7a5d30575ac7adfdf0","name":"ros-noetic-geometry-msgs","requires":[],"size":82158,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71b7b6e8a9730d8ba0a3cca2701b6a560c1c19187b5e864f9021aab5c3f2a678"},"ros-noetic-rosconsole-1.14.3-py39h68ef2c3_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["apr","boost-cpp","libcxx >=14.0.6","log4cxx >=0.11.0,<0.11.1.0a0","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h68ef2c3_5","timestamp":1674181031861,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b0198d61418c1131596d1cc1b91a0d1e","name":"ros-noetic-rosconsole","requires":[],"size":168418,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9345692557d93b6c0288c3290cbaf142951709d92b2e2fc31250b53bc2ff5562"},"ros-noetic-rosgraph-msgs-1.11.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674180808624,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c5ff9a07252692dfe5993a0f26fd7865","name":"ros-noetic-rosgraph-msgs","requires":[],"size":34635,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91880804f583e3b18f472e6aa637623ffcd5a86e9d744ef91dec0e6561e74918"},"ros-noetic-mk-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"build":"py39h46ec4ef_5","timestamp":1674181148235,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"adb15acc574d756dae1847849e4df0d9","name":"ros-noetic-mk","requires":[],"size":16726,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ab10fecbd87624fc78d6b9520a5bdd603ebf98e703d47ac7fc051ef044c0045"},"ros-noetic-mk-1.15.8-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503368625,"md5":"593f3cbc310602cc6247b0f87a2cb8ed","name":"ros-noetic-mk","requires":[],"size":17894,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57ad2f820d9af7ef4d23928c9cdabb9269705edc36c4bc427bd78433eef08167"},"ros-noetic-bond-1.8.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181018264,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2c24e99fbd9224ee811c76ffddd894f8","name":"ros-noetic-bond","requires":[],"size":26019,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9b1631943d8661a3c8018b8a402eee9f7da15cf2afcd77e8c050e6fcb5fbcfc"},"ros-noetic-bond-1.8.6-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503153388,"md5":"6d27fc1ed5b45494735d0861c9a6e94c","name":"ros-noetic-bond","requires":[],"size":29185,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2bee83c6be5063ed412c85d6113ebf9ff00706e5b8fcaaded3191ffb6db958d"},"ros-noetic-smach-msgs-2.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181390983,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f326265e729ed50ecd3a863d42c1e904","name":"ros-noetic-smach-msgs","requires":[],"size":31203,"version":"2.5.0","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd3275b99e7c8eb8aa6ff02bc1d6158fb8de74f3ef5c2e48912cfd5ed93735ed"},"ros-noetic-smach-msgs-2.5.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706502956430,"md5":"2c7b0964fa57cc1ff18f4539bbc83061","name":"ros-noetic-smach-msgs","requires":[],"size":35117,"version":"2.5.2","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87755f58e793e443883e5522722e00abcbef7a6276781141c5ff9a25c2a4eed8"},"ros-noetic-uuid-msgs-1.0.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181269374,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0bc310a780ccb34b6c4cf2f2dfe2ebb","name":"ros-noetic-uuid-msgs","requires":[],"size":19234,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99d876321c5a7cffa275a1f08e45eadede6e6a7ea26668b36a3a3cbaae7b4114"},"ros-noetic-uuid-msgs-1.0.6-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503473475,"md5":"8fb1330e8d8bf6a3f20e43fa200257d4","name":"ros-noetic-uuid-msgs","requires":[],"size":21205,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45e81627e521fb07a3a85b7590f21ca4cd93b75803dbc3edb0e04ad89be29188"},"ros-noetic-slam-toolbox-msgs-1.5.7-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-std-srvs"],"build":"py39h46ec4ef_5","timestamp":1674181977467,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"728e77799ca7e369c6d8ba0d40b37ec5","name":"ros-noetic-slam-toolbox-msgs","requires":[],"size":43810,"version":"1.5.7","binstar":{"package_id":"63c9d3d95a31eb90f6a0928e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22ac576d9532e5e0269fe7b187cd3386e113bd2a196d7f10b3a59574d4ce7f4b"},"ros-noetic-radar-msgs-0.1.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182135038,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fd598cf37bb8d6b005edf4aeaf055802","name":"ros-noetic-radar-msgs","requires":[],"size":38584,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a591edcfddd6dfb1a89ff1063cbe04406889c08b7130e8d7956eb2392e906cb"},"ros-noetic-mbf-abstract-core-0.4.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182339300,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c341953b8fc3f1a8ea7cce152f9ba216","name":"ros-noetic-mbf-abstract-core","requires":[],"size":14275,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"902a549765051ea5611de578a7ea0c03e75bdbe5b5a4b0306b382a0895443f70"},"ros-noetic-octomap-msgs-0.3.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182436925,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"674b59d47f868831051681a87982c81c","name":"ros-noetic-octomap-msgs","requires":[],"size":39673,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9255ce9503f05e76578e097fc20d79670ed6c3ca099ec77a81b33eeb439b7bc"},"ros-noetic-resource-retriever-1.12.7-py39h0cedfa0_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcurl >=7.87.0,<8.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"build":"py39h0cedfa0_5","timestamp":1674182005092,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e90e5e6bb501c3cc561fdf65a46696f3","name":"ros-noetic-resource-retriever","requires":[],"size":22488,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ffac3801666dd3c5225915f7324d5311e08fe95d7a579f88526c959e6a0167d"},"ros-noetic-trajectory-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182301773,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4b014b5f78fcc184478e5d3e4953d4c1","name":"ros-noetic-trajectory-msgs","requires":[],"size":37791,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3824003cf0e5ac38a6e42e25b0a475edb2f22398829daee1ffa4c0ee281f1c2"},"ros-noetic-visualization-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181813886,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e82f4af9be5e9d7e94b4580b852f2e3b","name":"ros-noetic-visualization-msgs","requires":[],"size":91963,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8ff7d8d0a9e1d294f89d530390a5291b0bcd127caed5fa1960be43eca76e5ec"},"ros-noetic-shape-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182140315,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"24940b1b8850be2350848936dc104e23","name":"ros-noetic-shape-msgs","requires":[],"size":31246,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d1ba9cba1c80172481ddf207c396d49a3396c719da1ffdced0c85150ca3ddc1"},"ros-noetic-kdl-conversions-1.13.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs"],"build":"py39h46ec4ef_5","timestamp":1674182275690,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39245032d0e60cdddd41afe05860f6ce","name":"ros-noetic-kdl-conversions","requires":[],"size":14937,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d7e0a65f154c6122b84f3ba804344341acdb7860968fe34135646e35a11e31a"},"ros-noetic-qt-gui-py-common-0.4.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg"],"build":"py39h46ec4ef_5","timestamp":1674182125088,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"65f736e384bb92be5360fe53810e1c05","name":"ros-noetic-qt-gui-py-common","requires":[],"size":22269,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7bdc63cf92919c3996326a0ec6c27c9487075dc353b7e4d12d22fad64d55d503"},"ros-noetic-move-base-msgs-1.14.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182406227,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7cb55161cfa932ef80ec6ac77d86a9af","name":"ros-noetic-move-base-msgs","requires":[],"size":44103,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a677004552f92a2aa0bc449afe897345a2f52a5ae97a4432e534bc3d0d3ebd8"},"ros-noetic-qt-gui-0.4.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181852473,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a7345b8f93f56501971b54a8d7895b71","name":"ros-noetic-qt-gui","requires":[],"size":106221,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"249876be520c14f374f38dbeab95d8264079bad8cc2b5660b699a27f480cfbc6"},"ros-noetic-eigen-conversions-1.13.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182031843,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39c688fab2ce5505fe7c38b67a28541d","name":"ros-noetic-eigen-conversions","requires":[],"size":17208,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69812bc10fdf2595217d03d3f0d633976bc6207c85885a2f81473cb468201cdf"},"ros-noetic-qt-dotgraph-0.4.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pydot","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding"],"build":"py39h46ec4ef_5","timestamp":1674182081921,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f5702e883e331914fbb05d5dbb967e7","name":"ros-noetic-qt-dotgraph","requires":[],"size":31516,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96481bf2e6a7f84fcaeaa4ad3b01cd880814155a687c1610bf13eeb1ffabc04d"},"ros-noetic-ros-1.15.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674181950623,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"69f6a0d073f49c735b729fcc34cbb859","name":"ros-noetic-ros","requires":[],"size":8232,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1da2bbe5bb5a7be6ad3c584d84b5876b9fd21880b6041abb61c4a2ddd8b560b"},"ros-noetic-roslisp-1.9.24-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1675292632761,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dba60e7a7085e22f3a5f681483036b08","name":"ros-noetic-roslisp","requires":[],"size":118463,"version":"1.9.24","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1a4f136609f04eb5402cbdbe77f20020cceff2b3c5364f3fb78b4672d84109b"},"ros-noetic-geographic-msgs-0.5.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182218601,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c05c36463af4fd72af79167b2cecf28","name":"ros-noetic-geographic-msgs","requires":[],"size":88093,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6728056649e9b607d36c8f209234d1b2a141925d1dab31b6490def21ad40485"},"ros-noetic-tf2-msgs-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182314888,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"366b06f9e200aeee2833abc04a19b0ab","name":"ros-noetic-tf2-msgs","requires":[],"size":55991,"version":"0.7.6","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc849b7b64499b334bd012e6f35f5e9ef84cddc68039981d9c8077fac2319b37"},"ros-noetic-pluginlib-1.13.0-py39hd766fea_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39hd766fea_5","timestamp":1674182163848,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c092094f1259a9f9cb6c4fe60864d71f","name":"ros-noetic-pluginlib","requires":[],"size":24714,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41f9646239fb17417d5644f66c12a5cadb0aa7630fd896d127d2e7e52b2b2f3f"},"ros-noetic-roscpp-1.15.15-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674182034231,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9d744bf60ecf69334a1a4827b25bcde0","name":"ros-noetic-roscpp","requires":[],"size":488563,"version":"1.15.15","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa60fb0d9d77d19917693a79223febc57d2d3eee39961981090718a175853955"},"ros-noetic-nav-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674182627449,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bed5b45950f389fb2293a82ac846fcb8","name":"ros-noetic-nav-msgs","requires":[],"size":80742,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab5a1df50dec63e473365fa525673ef5e349013d8dcaf1327604526f02b201cf"},"ros-noetic-rosconsole-bridge-0.5.4-py39he361d1e_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"build":"py39he361d1e_5","timestamp":1674182487335,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a4f969be2f599261f077535af1d5c801","name":"ros-noetic-rosconsole-bridge","requires":[],"size":18186,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53c4c253c8d6eea4375e0f7035918d59eb6dc4c7fb05a1299cb72bf7d47c8ceb"},"ros-noetic-tf2-0.7.6-py39he361d1e_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39he361d1e_5","timestamp":1674183344260,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a42af8e3770e83f2c289d6baf27ff960","name":"ros-noetic-tf2","requires":[],"size":116703,"version":"0.7.6","binstar":{"package_id":"63c9d5c02ff78d332e6f5991","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44878308b07f08d356ef56aa5a490301801647a31163ac263c71093a455a0824"},"ros-noetic-geometric-shapes-0.7.3-py39h681ae0f_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","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","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h681ae0f_5","timestamp":1674183578035,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bbf99c02d0fd67c1edb90ac38281b460","name":"ros-noetic-geometric-shapes","requires":[],"size":100556,"version":"0.7.3","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d4aa4d2737aaf1f7e875798e4b6eb3b0e2ae3e747a195948c0d0499a470fa76"},"ros-noetic-voxel-grid-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674183759135,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e54706f58fb3a8f22cd0f0ba4ffe271e","name":"ros-noetic-voxel-grid","requires":[],"size":22810,"version":"1.17.3","binstar":{"package_id":"63c9d5c1edf45d7c2e29da9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d14f7d44a897fca593e96be05d7e27c0e17dbfef0c471ef4472a40aca2bb8177"},"ros-noetic-rosout-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosgraph-msgs"],"build":"py39h46ec4ef_5","timestamp":1674183067858,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0bc7fa678f33f93f91406184b121ee35","name":"ros-noetic-rosout","requires":[],"size":41487,"version":"1.15.15","binstar":{"package_id":"63c9d5c220c05f5e390870d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f0723077d1fc5cabe3c8b4888cc5623cebfabb303587fa2e6e5ac67da51d3cd"},"ros-noetic-rospy-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674183176590,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6961954844e60ea00dc6b0a0e610ac72","name":"ros-noetic-rospy","requires":[],"size":143223,"version":"1.15.15","binstar":{"package_id":"63c9d5c3edf45d7c2e29daae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fbf30d69c4ec805e01b5c57916837ad25f433dc7b7f5d36f38b78df4bf0ff09"},"ros-noetic-plotjuggler-3.6.0-py39hd5b7355_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","cppzmq","libcxx >=14.0.6","lz4","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-roscpp","ros-noetic-roslib","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.4,<4.4.0a0","zstd >=1.5.2,<1.6.0a0"],"build":"py39hd5b7355_6","timestamp":1681696990454,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5203046d3ba0738c299eb341a3ab1d2","name":"ros-noetic-plotjuggler","requires":[],"size":22856333,"version":"3.6.0","binstar":{"package_id":"63c9d8210273ee116a012b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9df951d5b0c2cc544aa9ca8e542a951839658184e5cfc28a2a6166aa8e3d1e2"},"ros-noetic-sparse-bundle-adjustment-0.4.4-py39h960eaa4_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libblas >=3.9.0,<4.0a0","libcblas >=3.9.0,<4.0a0","libcxx >=14.0.6","liblapack >=3.9.0,<4.0a0","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","suitesparse >=5.10.1,<6.0a0"],"build":"py39h960eaa4_5","timestamp":1674183279255,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0b4dab1636fd87621052c965879a7029","name":"ros-noetic-sparse-bundle-adjustment","requires":[],"size":190855,"version":"0.4.4","binstar":{"package_id":"63c9d8248ff1ad274284ce7b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42467d5957987b5e43e32e7e1e87c710c91d2cb269938963a0cba16387cf497b"},"ros-noetic-mbf-msgs-0.4.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674183022904,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d5b94b8ace66ed8eba96097b06a7e92d","name":"ros-noetic-mbf-msgs","requires":[],"size":133508,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1777fe9620ed894ce91cedd41c2185b94b45062e216cbf33c2a8a66e4bfe59fd"},"ros-noetic-roscpp-tutorials-0.10.2-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674186298066,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"551974ea50548c2e2b9307a4382435ff","name":"ros-noetic-roscpp-tutorials","requires":[],"size":181081,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f4a87570ffa088eebfcd1155fdfb091acf9c7d15262cc3dd1a44f329dd58f61"},"ros-noetic-bondpy-1.8.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-smclib"],"build":"py39h46ec4ef_5","timestamp":1674186039681,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1f97eb90064b75ca985bb886bcf7bab4","name":"ros-noetic-bondpy","requires":[],"size":21706,"version":"1.8.6","binstar":{"package_id":"63c9e0c768b198bb95994813","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"baddd3d6b1dd7e07902c5a3f94469662825a727a290e58639a1a4db537c49455"},"ros-noetic-control-msgs-1.5.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674186495018,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e16df8f8900ce203296ae541505ccb47","name":"ros-noetic-control-msgs","requires":[],"size":145187,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9ae2ec5dbe1c6d46994c7dcc07d7d96c239680c7d9ba89d2150c1e2636fdaac"},"ros-noetic-urdfdom-py-0.4.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy"],"build":"py39h46ec4ef_5","timestamp":1674188372524,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6288f1989a100ec6c54189835eba446d","name":"ros-noetic-urdfdom-py","requires":[],"size":37238,"version":"0.4.6","binstar":{"package_id":"63c9e0f55a31eb90f6a5ab76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24c3fd0780336e5029bcc2e17ec291f83985329d875d34d07ffca9010cf06097"},"ros-noetic-roslaunch-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","paramiko","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674187912526,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f873e4974edabdaad3d23eff2ac0e903","name":"ros-noetic-roslaunch","requires":[],"size":141916,"version":"1.15.15","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51bcfa264a19a727e1713987b3e4dfb96969e64d5b1b555f4037bfa25a34cd3f"},"ros-noetic-tf2-eigen-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39h46ec4ef_5","timestamp":1674188497180,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bb905ab7ec20ecb85a32a5606b518661","name":"ros-noetic-tf2-eigen","requires":[],"size":14365,"version":"0.7.6","binstar":{"package_id":"63c9ea252ff78d332e775793","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc6b2ef9020b65e9968ada00ecb2f360595ae46891622970fe905a3cd008095b"},"ros-noetic-tf2-py-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2"],"build":"py39h46ec4ef_5","timestamp":1674188271181,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a7c15896320681a56628787837b9d736","name":"ros-noetic-tf2-py","requires":[],"size":35940,"version":"0.7.6","binstar":{"package_id":"63c9ea2859c09271a4483f0a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8c123521fa288796f1ede586dd193fe3d752d2ba35dbd40496540a8314eb426"},"ros-noetic-rqt-gui-0.5.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674187434526,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f584d68f870f9097c02916dc95f24c9b","name":"ros-noetic-rqt-gui","requires":[],"size":106424,"version":"0.5.3","binstar":{"package_id":"63c9ea292ff78d332e775808","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5cd22d0c0cc673a179565f31d2ba1997cfe06127b96811bddfa1b8f4760c9cd"},"ros-noetic-bondcpp-1.8.6-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674185764411,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"77de93dd6f1ddda6eca6930af454bf6c","name":"ros-noetic-bondcpp","requires":[],"size":62801,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"172a0181a4c8be682cbd6260bb7c3056edc521be7e4303d49fafd716c2e1c8f4"},"ros-noetic-hardware-interface-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674185902709,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc9e784d1b7ed360227414afa2fd07ff","name":"ros-noetic-hardware-interface","requires":[],"size":25097,"version":"0.19.6","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e56c240b17429257b87dd171f98f84621b840257dc11cc5b0f7bff29b41f9230"},"ros-noetic-dynamixel-sdk-3.7.51-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy"],"build":"py39h46ec4ef_5","timestamp":1674191359224,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1fe2e0ba335161da03496fa990ed1f33","name":"ros-noetic-dynamixel-sdk","requires":[],"size":76748,"version":"3.7.51","binstar":{"package_id":"63c9edc8912363225b8c59a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"943b8a4ce20a85865e42320a5830ceda06cf55744dd4a60c02cba7e132667f34"},"ros-noetic-tf2-bullet-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["bullet","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39h46ec4ef_5","timestamp":1674189223850,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fdfd32fc05966ee814d8114bbf5e1dff","name":"ros-noetic-tf2-bullet","requires":[],"size":13007,"version":"0.7.6","binstar":{"package_id":"63c9edc90273ee116a06ee2d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a4fc0b64a67d88c670ddaae203cbca181028d85e3c4dc0fd14cf09ae2293969"},"ros-noetic-rostest-1.15.15-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674271519404,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cfc7f8e86dc3a6bb3d1a44badd869375","name":"ros-noetic-rostest","requires":[],"size":38682,"version":"1.15.15","binstar":{"package_id":"63c9ee545a31eb90f6aa0eee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a23c56159eb5cffdbe9b75fb81a4ce31db2991dc714f3a58b833d10c634f0783"},"ros-noetic-controller-interface-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674272128886,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"50bacc32f338e7f379822e333153e62c","name":"ros-noetic-controller-interface","requires":[],"size":17778,"version":"0.19.6","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10619f72bd82aaff6c8abe404aaf7290e000e0e045a6dde41e0e29b1e211bf69"},"ros-noetic-rqt-gui-py-0.5.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674271744529,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"820c06c9241be92208ae7ce4fc094b37","name":"ros-noetic-rqt-gui-py","requires":[],"size":16611,"version":"0.5.3","binstar":{"package_id":"63c9ee5620c05f5e390ad6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30b4f9a2882a26763b7a8b7a7cfaeff8b95cbc3c513387f7cdbb8095c60e7a7e"},"ros-noetic-nodelet-1.10.2-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674271977370,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4a14303f1c4d7896e848415684786f7d","name":"ros-noetic-nodelet","requires":[],"size":167945,"version":"1.10.2","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a1420b90bc9f01fa7b5455617c190a291b56c2eb19d554523a819ae54728da3"},"ros-noetic-transmission-interface-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674275918065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8e566fb08e46f8bcfb8d4257c4f5a48c","name":"ros-noetic-transmission-interface","requires":[],"size":204713,"version":"0.19.6","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4c3d7dfa71fd092c09d1aa28096991e7a00dc4be05ef0b718a2e5c1e12f266d"},"ros-noetic-rosserial-python-0.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyserial","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674187840436,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e3f27ea530a5a0210320804685b0fbd0","name":"ros-noetic-rosserial-python","requires":[],"size":30230,"version":"0.9.2","binstar":{"package_id":"63c9ee832ff78d332e79491f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36a6bb40cad1b43b9a9ad79b3e0e4fcb37200a52bd34cb82b2f2541d3db84ef1"},"ros-noetic-bond-core-1.8.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674187945901,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"530f309752d70d2db6b5b12634b21750","name":"ros-noetic-bond-core","requires":[],"size":8188,"version":"1.8.6","binstar":{"package_id":"63c9ee848ff1ad27428eb132","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4079b4440c42b468d78460bf8bdc0ea4d110fc77da0fc4b268750da2d297b8a1"},"ros-noetic-turtlesim-0.10.2-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674188254834,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"da833f38519126ec08c8d862deb14fe0","name":"ros-noetic-turtlesim","requires":[],"size":261065,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"575977c01908e96ccc30714d103f184902fe0df7af2566dbd5b226a4612a13f2"},"ros-noetic-kdl-parser-py-1.14.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdfdom-py"],"build":"py39h46ec4ef_5","timestamp":1674276974987,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6a271096a944f500c7e36b69d2faa4fe","name":"ros-noetic-kdl-parser-py","requires":[],"size":16797,"version":"1.14.2","binstar":{"package_id":"63c9f11bd0e8c095e22c66eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"518b064e3ac0f565033a01227c762b7b135b245c660313931a97a7570c6a644c"},"ros-noetic-pluginlib-tutorials-0.2.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674276692572,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5f9d0009f62c9144f8459fd24086959d","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":73924,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4863617c05727f517721bd560ddd134b511bbd68b8c59b56e55102a806e01bcb"},"ros-noetic-rqt-top-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","psutil","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674297629101,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d19e334abdb12bb3db82522abfe0b6be","name":"ros-noetic-rqt-top","requires":[],"size":21309,"version":"0.4.10","binstar":{"package_id":"63c9f1a25a31eb90f6ab77f6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"65e9b10981a603980632cadb3f39331c347cb226d21e4baae5fc5ece9d8879da"},"ros-noetic-rospy-tutorials-0.10.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674276099848,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cf5aaaa17790fc359bd319a96a683d75","name":"ros-noetic-rospy-tutorials","requires":[],"size":46360,"version":"0.10.2","binstar":{"package_id":"63c9f1a3c37c80a75b45311d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ced38e53250350b8fa33cb3afb61cadba704f63795a03815a2bd4287daefb71"},"ros-noetic-rqt-runtime-monitor-0.5.9-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674297441533,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a805e261f3faa980e70580bcd13e5a2b","name":"ros-noetic-rqt-runtime-monitor","requires":[],"size":21573,"version":"0.5.9","binstar":{"package_id":"63c9f1a5a64974fd09a5942b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5c1428ef6acfdba6c2d4e85f6164834fcb244c7ae1b4bc62731d89aaaf122b5"},"ros-noetic-rqt-web-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674297535238,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee838a01a96198bf0c2165d51248af0f","name":"ros-noetic-rqt-web","requires":[],"size":19549,"version":"0.4.10","binstar":{"package_id":"63c9f1a6dbdf733521024dae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e37f6d43cf69447703012a9d5dde8fcda4695aa4468edbbc75b65101b39be8e"},"ros-noetic-rqt-shell-0.4.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674297720650,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2faea5003d65ec327e185c807c783eef","name":"ros-noetic-rqt-shell","requires":[],"size":22454,"version":"0.4.11","binstar":{"package_id":"63c9f1a7b05590e2b1c00213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42644ae140c71c5872412d68e64ce233ef7e090b48043f052690a0152aba7fd1"},"ros-noetic-hector-map-tools-0.5.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs"],"build":"py39h46ec4ef_5","timestamp":1674188517267,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"879397ccf3b4ffdda3e56e67795f38cc","name":"ros-noetic-hector-map-tools","requires":[],"size":14546,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94c37bf222a88bff8b62cb92e3693f38becefeb1070a540513898b09025614e3"},"ros-noetic-visualization-marker-tutorials-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"build":"py39h46ec4ef_5","timestamp":1674276497714,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ab369629e2072175e45c5a747a5b3321","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":28967,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42bf4b7c3190aeb2605ff2f368b68809c31d4fce8f1e47dc685f70734a9a045a"},"ros-noetic-rqt-py-console-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674297910726,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c19b97db5f5c1b6a5aa1f6788c66ec5e","name":"ros-noetic-rqt-py-console","requires":[],"size":19391,"version":"0.4.10","binstar":{"package_id":"63c9f21ac37c80a75b4552b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78f56517a773681ad6848a33344400b22faaf9d937e8bb0a192264d82369e523"},"ros-noetic-hector-nav-msgs-0.5.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674188398426,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e213de05844cd853c752e7a4c9f9f5b2","name":"ros-noetic-hector-nav-msgs","requires":[],"size":44482,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22732221bb7ba7df56826e4da256f8db0bbf1cad623971347f7517baabff7928"},"ros-noetic-urdf-1.13.2-py39hce154db_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39hce154db_5","timestamp":1674277387110,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"88d23eeabbf59209a879b221d00f60b9","name":"ros-noetic-urdf","requires":[],"size":83768,"version":"1.13.2","binstar":{"package_id":"63c9f233c37c80a75b456731","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2793a9f3cea3bae4db43e8609d4e1ad7b9e68d300943dc4805962d79e33fecb2"},"ros-noetic-xacro-1.14.14-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslaunch"],"build":"py39h46ec4ef_5","timestamp":1674298019648,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5f2e364f3a39926e585d06c0835744e4","name":"ros-noetic-xacro","requires":[],"size":44020,"version":"1.14.14","binstar":{"package_id":"63c9f236b23346582ca98c5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bae950f9c3e8a214ac77af8d05be46acfdf109bd9df680c015f24bb66150c2d9"},"ros-noetic-topic-tools-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674276755071,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c6e215e13c1a978b1a5728d4bcf88dd8","name":"ros-noetic-topic-tools","requires":[],"size":172571,"version":"1.15.15","binstar":{"package_id":"63c9f23759c09271a44a50b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5700304e26ec806bcf7c1721962de4d85ba469075600b6c7c72d381c1b7a808"},"ros-noetic-message-filters-1.15.15-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"build":"py39h2335ed2_5","timestamp":1674277190136,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"185441f06c7a1f91d4eace65a394a37b","name":"ros-noetic-message-filters","requires":[],"size":43035,"version":"1.15.15","binstar":{"package_id":"63c9f239edf45d7c2e2f4f0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a6dce5ee4cb9534d6e1f55640431eef71791c473472b6f7a872d5692f9cf253"},"ros-noetic-realsense2-description-2.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39h46ec4ef_5","timestamp":1674355611624,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b2e134e54e99da83b28d154ec7e24389","name":"ros-noetic-realsense2-description","requires":[],"size":21688350,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94e10e5e8ad8eaa1aba01888ca13e05bf623820ceec935d77a0e909a98a1d68f"},"ros-noetic-realsense2-description-2.3.2-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"subdir":"osx-arm64","timestamp":1693382359199,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py39h46ec4ef_7","md5":"ce21f3a71972b132c7094368d6fad98b","name":"ros-noetic-realsense2-description","requires":[],"size":21672852,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a8ddc0a20429b6008790cfd88918dc44a7993c6ed583b8d4c583073214ef89c"},"ros-noetic-moveit-resources-prbt-support-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39h46ec4ef_5","timestamp":1674356729524,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dd4de785608cae819d57d5c97b5243b2","name":"ros-noetic-moveit-resources-prbt-support","requires":[],"size":1083732,"version":"0.8.2","binstar":{"package_id":"63ca0b84c37c80a75b525288","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b48d20d467f99f8d5b49d58c68ef5b5e22df9df758680d1999017f02f048718"},"ros-noetic-nodelet-tutorial-math-0.2.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674276684171,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"16c240bb3dad4fd495e78e8bb54b73df","name":"ros-noetic-nodelet-tutorial-math","requires":[],"size":34865,"version":"0.2.0","binstar":{"package_id":"63ca0b85d0e8c095e23995ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0516b07ae4d1f93ef063e165f801e05447dc23cd462817f507fb3f8feb03234a"},"ros-noetic-velodyne-description-1.0.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h46ec4ef_5","timestamp":1674355478284,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0c5fb2f4f049eb7b7f2907cb3ace01c1","name":"ros-noetic-velodyne-description","requires":[],"size":303381,"version":"1.0.13","binstar":{"package_id":"63ca0b8868b198bb959f153d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51a3e85819fdc6c976c8f45b5105aeb62ad8ff4568bcfbe89cc8243f3aaaea87"},"ros-noetic-turtlebot3-teleop-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"build":"py39h46ec4ef_5","timestamp":1674276834974,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"17ba0bce802152facb30052b165dc112","name":"ros-noetic-turtlebot3-teleop","requires":[],"size":14191,"version":"1.2.5","binstar":{"package_id":"63ca0d065a31eb90f6b3d898","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7db17b557dae68a2630ed3e4ad8e96977d6336b81f176ad704343c759f6d2741"},"ros-noetic-class-loader-0.5.0-py39h1ebbbca_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h1ebbbca_5","timestamp":1674271326377,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eebb4c8e312c9bb1d88bcc0ce62117f2","name":"ros-noetic-class-loader","requires":[],"size":62825,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9856be588d642e4a7becc30fd495d8a22d36b12d9d17640487827deaa977dbb6"},"ros-noetic-class-loader-0.5.0-py311h92f7659_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311h92f7659_8","build_number":8,"depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499210264,"md5":"39ea70033d3d730265e654089b3470e7","name":"ros-noetic-class-loader","requires":[],"size":64225,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea368dc8da80263b8e84fac433cfe53cc0c8996cb8d14fc7cd2fbd2e8078279a"},"ros-noetic-rosbag-1.15.15-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pycryptodome","pycryptodomex","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674297698045,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e08271745e624f59e674adaefa448e3d","name":"ros-noetic-rosbag","requires":[],"size":497562,"version":"1.15.15","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"804c82cd5b9ebfd397a8cdac4115ca21648ce696e6f2afaf875435b3430f32ac"},"ros-noetic-diagnostic-aggregator-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674356271129,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0363ddab9b8af47cdc1a8521e9cd3e41","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":335298,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"757e5a94be9b8f9758ff553954bf49319b3e0327571f3bb45cc4827937f8cf7d"},"ros-noetic-diagnostic-updater-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674356036559,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fd397cd76109f201ab8124abe3cb719d","name":"ros-noetic-diagnostic-updater","requires":[],"size":55729,"version":"1.11.0","binstar":{"package_id":"63ca19745a31eb90f6b81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7173b7bfb17638863d2289b33b783372a446d6ddc4f8f3f480550ee7f7d54b4"},"ros-noetic-kdl-parser-1.14.2-py39h667b4a2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h667b4a2_5","timestamp":1674297894923,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"93c42aaa248bfd22a70936aa8944d369","name":"ros-noetic-kdl-parser","requires":[],"size":27609,"version":"1.14.2","binstar":{"package_id":"63ca197614201bfa453812c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb03efd6aab06027e2d29200df02e271be3fe4dfd3edf732f2b66036927d87fc"},"ros-noetic-jackal-navigation-0.8.5-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","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":"py39hae387e0_3","timestamp":1674460143487,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0651e50c7f3359d3698130731383960c","name":"ros-noetic-jackal-navigation","requires":[],"size":37423,"version":"0.8.5","binstar":{"package_id":"63ca2115d0e8c095e2427b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70c6cc577dced317a87cb66e1c0faa74e572a7657351779ccbabe51ba3d9e34c"},"ros-noetic-rostopic-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674355518119,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bcde49a18a516c37ac8eb4fb32ba650e","name":"ros-noetic-rostopic","requires":[],"size":53221,"version":"1.15.15","binstar":{"package_id":"63cb6b58a64974fd09f761ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88d4428a192f860a19e6a30a712173de32cf5dafcbcce4cfbdce595a7985b8b7"},"ros-noetic-rosmsg-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674355659944,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"89f8e082bd4b02512a70bfc6b80117b3","name":"ros-noetic-rosmsg","requires":[],"size":30873,"version":"1.15.15","binstar":{"package_id":"63cb6d178ff1ad27426d708c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d038e6279f22c39decc0d7daef557bc29784882fa4a213dc07ad84bb8479f716"},"ros-noetic-sensor-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674355828780,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a824a87d22af590c59c67ed48cea1c9d","name":"ros-noetic-sensor-msgs","requires":[],"size":170293,"version":"1.13.1","binstar":{"package_id":"63cb6d1ac37c80a75b2b480e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad69e038e3687483c024c41a54644dc70f703487c2fc27e55e18a8a747799123"},"ros-noetic-self-test-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357663259,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"655ccc5f41b036e8355a9c69a9938138","name":"ros-noetic-self-test","requires":[],"size":172973,"version":"1.11.0","binstar":{"package_id":"63cb6d1adbdf733521e9130f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"458c4718be9328588c9ca3522bb67d6c1b2e412414c0f6885a9f116e9795b37d"},"ros-noetic-jackal-control-0.8.5-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","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":"py39hae387e0_3","timestamp":1674440641507,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b2399d9f1d971ff73eb9117ab332e3b9","name":"ros-noetic-jackal-control","requires":[],"size":14700,"version":"0.8.5","binstar":{"package_id":"63cb6d1bedf45d7c2e7b924c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82113b561b499804727a673a7801b703c49412e4ab42ec7295aeb9cc63d7d4d0"},"ros-noetic-filters-1.9.2-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674356195288,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"459a718d1d789e7094705d36340efd64","name":"ros-noetic-filters","requires":[],"size":75670,"version":"1.9.2","binstar":{"package_id":"63cb6d1c2ff78d332e290f80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89c45db6c9b3f2c2406887c6ee0fd1d323697a9431d0000e70dd9f76d0ff780b"},"ros-noetic-diagnostic-analysis-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674356860534,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9ab965c96516bd8131e3b31d1ab01a25","name":"ros-noetic-diagnostic-analysis","requires":[],"size":20934,"version":"1.11.0","binstar":{"package_id":"63cb6d1cd0e8c095e2091b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a0787daa16ce7b50a08409dcc577f64e866d0dad3ba03890b466436cc593c05"},"ros-noetic-ros-tutorials-0.10.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674298077186,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7670c21cc990c7d872f01b9e28b2cb02","name":"ros-noetic-ros-tutorials","requires":[],"size":8684,"version":"0.10.2","binstar":{"package_id":"63cb6d1d912363225b376ac3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08112e186360f3844f311cc7c7e4a7cb344d2d967903038f441faf79bb1ff0a5"},"ros-noetic-rosservice-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357414966,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d1ca32d26a765dc2df53cd28b9875f5f","name":"ros-noetic-rosservice","requires":[],"size":26520,"version":"1.15.15","binstar":{"package_id":"63cb6e6920c05f5e39391f10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fcafab7a40ede11e7988ebeee0c2076a84566fd045b6a14d79644a812cdfd86"},"ros-noetic-joint-state-publisher-1.15.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs"],"build":"py39h46ec4ef_5","timestamp":1674357924855,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cda9d59a5fbb96abf1b452d31687681c","name":"ros-noetic-joint-state-publisher","requires":[],"size":19150,"version":"1.15.1","binstar":{"package_id":"63cb6e6a2ff78d332e294985","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9671fca1697b290fc98af18ea17fdba1769ad465dd0fec31e733ed65ca88ebbb"},"ros-noetic-map-msgs-1.14.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357554184,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4cb0ba889af4ba1aaae7a318c31af272","name":"ros-noetic-map-msgs","requires":[],"size":59651,"version":"1.14.1","binstar":{"package_id":"63cb6e6c5a31eb90f65539e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fb149d7d382cfa9dfd6ce918fb7725ca7f73efe524d7bc8a986a492d7d9b358"},"ros-noetic-rosnode-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-rostopic"],"build":"py39h46ec4ef_5","timestamp":1674357265113,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bda8f70d6e641fdc76f7e1c0107898ef","name":"ros-noetic-rosnode","requires":[],"size":28441,"version":"1.15.15","binstar":{"package_id":"63cb6e6dc37c80a75b2bce42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2124e8c2ef6debbb28ef1edde8d3563b7ba3558c5e3bfaa5fad43ba68356b12"},"ros-noetic-image-transport-1.12.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357795897,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7e52ce408cb11c59e2a0d783794a1682","name":"ros-noetic-image-transport","requires":[],"size":267764,"version":"1.12.0","binstar":{"package_id":"63cb6e6ec37c80a75b2bce48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"885d55467046823adf90c8bbda7768008021febfb2df699efec32c0064970924"},"ros-noetic-teleop-twist-keyboard-1.0.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"build":"py39h46ec4ef_5","timestamp":1675986844110,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e2133e37f4affc40ab59c8e71f277fd6","name":"ros-noetic-teleop-twist-keyboard","requires":[],"size":16026,"version":"1.0.0","binstar":{"package_id":"63cb70d6b23346582c26cd28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee2ab06c39dd6555eceb174a6422520e6ccf0311c9b80d58bde65bbabd45de7c"},"ros-noetic-rqt-topic-0.4.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357772584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"30e925bcc26dd11b9971d87c1bb83f4b","name":"ros-noetic-rqt-topic","requires":[],"size":26351,"version":"0.4.13","binstar":{"package_id":"63cbbed3d0e8c095e22e70cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f881d00720b65a56550e0ed9185efeb33d8a0121fe9f3636cc0593c850a3bd4b"},"ros-noetic-rqt-robot-steering-0.5.12-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357209636,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1cfe8e7abbd50a52afd7e4b88a22b52d","name":"ros-noetic-rqt-robot-steering","requires":[],"size":20315,"version":"0.5.12","binstar":{"package_id":"63cbbed468b198bb95ec6cc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24cc485b44f98e3448d9ccfd1523bebef6f389567dbd3a01a8ced7dea1ff27bd"},"ros-noetic-joint-state-publisher-gui-1.15.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358835877,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b8ce51f3379788a3c78b6f6867c0fdd1","name":"ros-noetic-joint-state-publisher-gui","requires":[],"size":18569,"version":"1.15.1","binstar":{"package_id":"63cbbf54be293b9e161bb6ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"650da8f6cca4d24fdd00e32f3a4e4added3eaad0af5f95cc2cc2804141b312ab"},"ros-noetic-dynamic-reconfigure-1.7.3-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674359297900,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"563584108c21806951ac894074395ef8","name":"ros-noetic-dynamic-reconfigure","requires":[],"size":107106,"version":"1.7.3","binstar":{"package_id":"63cbbf5568b198bb95ec776c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d4206f7f2ddfa11e1ceba7930caa262cf7ee294006694718e8d203426a2d938"},"ros-noetic-actionlib-1.14.0-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674358556005,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f2377f1e3af264a6085c5c061678332a","name":"ros-noetic-actionlib","requires":[],"size":163573,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc653e0c78c17ff807196ef1a59e5459a71f89d502a5345182a33ad528963c84"},"ros-noetic-actionlib-1.14.0-py39h2335ed2_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_6","timestamp":1678494652366,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c7de2d9a03c66efaa48eba01e04b14d","name":"ros-noetic-actionlib","requires":[],"size":163803,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a731dc69c2ef24479661f3bf5f7c68c32d3f152a99f102538177fdd196d4cb5e"},"ros-noetic-rqt-logger-level-0.4.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358388171,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4910db68d60d05bb53863a6a7b764e55","name":"ros-noetic-rqt-logger-level","requires":[],"size":20249,"version":"0.4.11","binstar":{"package_id":"63cbbf57c37c80a75b479e76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feb19c02d6c033bc71458e275814971088d4c1cccd3dd0c95b91822fbd5f3295"},"ros-noetic-roswtf-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","paramiko","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358721908,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"234e07bface3b5128301e1a22a3a23d7","name":"ros-noetic-roswtf","requires":[],"size":50115,"version":"1.15.15","binstar":{"package_id":"63cbbf58d0e8c095e22e96ed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa217dc176393f6a0996bc2ae55d634226a6b301a43dfd063659d5e166e26783"},"ros-noetic-rosserial-server-0.9.2-py39h2335ed2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h2335ed2_5","timestamp":1674297323821,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cbed394f3a1500db646ca053b5bae812","name":"ros-noetic-rosserial-server","requires":[],"size":324898,"version":"0.9.2","binstar":{"package_id":"63cbbf8c989160afcf1e1ddf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e31b0b37170293cac2596f3883752d88f1b98da0a4c2c0f55efaa1e12531da9"},"ros-noetic-map-server-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["bullet","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674298464145,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"13eaa32bb6fa7fdf0bb773212699b6f2","name":"ros-noetic-map-server","requires":[],"size":84089,"version":"1.17.3","binstar":{"package_id":"63cbc0f18ff1ad2742896865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fd3a88c2a1a1800b9a44089578fd8bafe8a9916ff2f9a28d5b81ba779e5120f"},"ros-noetic-srdfdom-0.6.3-py39h09da5bb_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h09da5bb_5","timestamp":1674298212011,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9db603260c7e6a8cc7496f6399a2dc42","name":"ros-noetic-srdfdom","requires":[],"size":72174,"version":"0.6.3","binstar":{"package_id":"63cbc0fddbdf73352109dc3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62b30eff1e2c9034183462b5a8c2d2a2aeac53c9dfc64a5fd493e7b84a4a29e8"},"ros-noetic-qt-gui-cpp-0.4.2-py39hae387e0_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.* noetic","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11","xorg-libxext"],"build":"py39hae387e0_5","timestamp":1674297531346,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"657f56e47f95e4599df4253849df3889","name":"ros-noetic-qt-gui-cpp","requires":[],"size":172119,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5513de7647c88c017a16e284fdadae25d46b1eca5212cba497982c7f5711319"},"ros-noetic-qt-gui-cpp-0.4.2-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h46ec4ef_6","timestamp":1681949172483,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fdfa0ea8bf807fada8bdfd19ae6cad4a","name":"ros-noetic-qt-gui-cpp","requires":[],"size":173794,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f662e80ed4af112883220d361b7719eb96b0d7c22106dc3043546c3f94811b78"},"ros-noetic-smach-ros-2.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385297099,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e09789fb984baa1d4ad25c2d9dcf0f2b","name":"ros-noetic-smach-ros","requires":[],"size":36999,"version":"2.5.0","binstar":{"package_id":"63cca29ab23346582c522620","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3d4f478d770bc54c0e5d04792edfccf0c19986c05489c14dc382a811cbc0f20"},"ros-noetic-turtle-actionlib-0.2.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384909703,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee8b090a8f60bed578356043d9fe1aef","name":"ros-noetic-turtle-actionlib","requires":[],"size":202227,"version":"0.2.0","binstar":{"package_id":"63cca29c5a31eb90f6a03908","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc350c0d4343bbf0fa1f70674d039c0f5264ce4619e51e2e70e8ec957186eb0d"},"ros-noetic-rqt-py-common-0.5.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384496396,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"157674688ccd2d3c98e3000c16077725","name":"ros-noetic-rqt-py-common","requires":[],"size":54465,"version":"0.5.3","binstar":{"package_id":"63cca33b2ff78d332e770234","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"feee7e57a2581d796ba026226f422e3f0a3284aab66fcfeff668009d713e449f"},"ros-noetic-nodelet-topic-tools-1.10.2-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674384648227,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ac087a4be6649949ef67d97fc0ef3d05","name":"ros-noetic-nodelet-topic-tools","requires":[],"size":22806,"version":"1.10.2","binstar":{"package_id":"63cca33c8ff1ad2742e7bdba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e5926ba8b2cd08ad50187d0e78a4d2e8aa66e04eb3dccd9dfaed8c49ac2ebdc"},"ros-noetic-cv-bridge-1.16.2-py39h099e9b2_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.9.* *_cpython","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":"py39h099e9b2_5","timestamp":1674357856064,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6544a68168f60048523218d3b7f60a25","name":"ros-noetic-cv-bridge","requires":[],"size":154482,"version":"1.16.2","binstar":{"package_id":"63cca33ecd65eb0e146473d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b6f612fea40c4022eafb8657528d28ad5f994e1b7882fd60938e2c4944b1f90"},"ros-noetic-tf2-ros-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384291196,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"24e6d3eae3ff4e5708d86f67ea2d8ff4","name":"ros-noetic-tf2-ros","requires":[],"size":244539,"version":"0.7.6","binstar":{"package_id":"63cca33fc37c80a75ba5cc0b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f1fe07967f7095edf421d6acd2a632c8e7c524d2dcc0bcc8bafe0ba1b8a530a"},"ros-noetic-stereo-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357299222,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9fa5869fd113f8f895295eaa8dd3d4fb","name":"ros-noetic-stereo-msgs","requires":[],"size":26891,"version":"1.13.1","binstar":{"package_id":"63cca3402ff78d332e77029c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0df8140c246eb08a53b6d45eb5659fc48ce7278d4b9cafec17eeb097fe7154f5"},"ros-noetic-turtlebot3-description-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39h46ec4ef_5","timestamp":1674355773152,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e73c70cc49c7d927aafcb6da0f95b331","name":"ros-noetic-turtlebot3-description","requires":[],"size":5673019,"version":"1.2.5","binstar":{"package_id":"63cca406a64974fd0910aac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"342332fc227398c2b3612ecd704111c7f7501fc5e05947c4484f7872823d2904"},"ros-noetic-rqt-gui-cpp-0.5.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674356487657,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b3563b01a2c5585a1092dd9fb9b777fb","name":"ros-noetic-rqt-gui-cpp","requires":[],"size":91746,"version":"0.5.3","binstar":{"package_id":"63cca8862ff78d332e78663e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"434db851b7bab403af2e29a414c476f4169967f6e03ed248dfda8c322aa469bc"},"ros-noetic-joint-limits-interface-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674356629914,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6fa65f8fbc3f75dfad79563d9ac48cd7","name":"ros-noetic-joint-limits-interface","requires":[],"size":18710,"version":"0.19.6","binstar":{"package_id":"63cca888c37c80a75ba7d25f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44a5832cee9b5549b78a643bbeae399f91e372a6e42d343bae0110d3f37204da"},"ros-noetic-gps-common-0.3.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357819869,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"46dff25fa77c7f542c78f9a2c39d0291","name":"ros-noetic-gps-common","requires":[],"size":83101,"version":"0.3.3","binstar":{"package_id":"63ccac48d0e8c095e2a303b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4389cddf69243d9707c292635e4036bbe0eb7da6077fd34232eef9f9ff0c8925"},"ros-noetic-hls-lfcd-lds-driver-1.1.2-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674357605732,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fd996bd94585f21fcdd02b9a2237eed1","name":"ros-noetic-hls-lfcd-lds-driver","requires":[],"size":87944,"version":"1.1.2","binstar":{"package_id":"63ccac4a59c09271a4f280e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c37a901e50639c2f61abb2e5cbafd8988385b950897f6d772159376b8154a28"},"ros-noetic-lms1xx-0.3.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357413497,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5b6d4a18463c82eb3de0cfd1302149cd","name":"ros-noetic-lms1xx","requires":[],"size":240451,"version":"0.3.0","binstar":{"package_id":"63ccac4dedf45d7c2e922c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6cc8414ec6773c8ee707b262f7b7e27dd758cbaf4daf972d87da84b58383975b"},"ros-noetic-pcl-msgs-0.3.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357455877,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ce2f28cb94172b2d4e7df1817118e29a","name":"ros-noetic-pcl-msgs","requires":[],"size":38881,"version":"0.3.0","binstar":{"package_id":"63ccaca4a64974fd09115016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02941ab36e0c170dbc821524cca493e1e73fd447b2444cdb7ceeb44bd048ecbd"},"ros-noetic-joy-1.15.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357911352,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ede640e42a510648e6393f115c75d032","name":"ros-noetic-joy","requires":[],"size":16769,"version":"1.15.1","binstar":{"package_id":"63ccaca70273ee116abaf554","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35c22f5842ff32ef3cb54d04546d490e102f8ef6b4c0c16bb4ef51ef150b9c24"},"ros-noetic-gazebo-msgs-2.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357402660,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"38eab1c463c3ac0b1a3b3b590bab101b","name":"ros-noetic-gazebo-msgs","requires":[],"size":159222,"version":"2.9.2","binstar":{"package_id":"63ccad3fcd65eb0e1466d326","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f2c744f7ceb019a47bdbe1ee42c99f6c24eae399d1e9ba1435eb6ba3817a1d8"},"ros-noetic-object-recognition-msgs-0.4.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674357234973,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d137d283ed9ff994eab23b6cef9d19e0","name":"ros-noetic-object-recognition-msgs","requires":[],"size":94227,"version":"0.4.2","binstar":{"package_id":"63ccad40b23346582c53a981","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33b3b9009e2426da477f96e3d33740f9118fb7693645af2c119c852987518c6e"},"ros-noetic-image-geometry-1.16.2-py39h70de506_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libopencv >=4.6.0,<4.6.1.0a0","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python 3.9.* *_cpython","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":"py39h70de506_5","timestamp":1674357605572,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"57b6000b94ca995e80977e63a12f8c1a","name":"ros-noetic-image-geometry","requires":[],"size":38761,"version":"1.16.2","binstar":{"package_id":"63ccad41d0e8c095e2a34205","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"277e0a93f63d14d15cbf3a43603eec12e39867341c32aaea38c763385391ddb7"},"ros-noetic-camera-calibration-parsers-1.12.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674358070040,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7aa2132f886eed8c1f2f93a95c8b8259","name":"ros-noetic-camera-calibration-parsers","requires":[],"size":79638,"version":"1.12.0","binstar":{"package_id":"63ccad42989160afcf3d599b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a882beff1021590ff50d3a80eb8d6e7a7f0862773f944a1012eca9dcf6f42400"},"ros-noetic-teleop-twist-joy-0.1.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358621334,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e8986556f398a270c228203fd117cb76","name":"ros-noetic-teleop-twist-joy","requires":[],"size":42630,"version":"0.1.3","binstar":{"package_id":"63ccb0d5dbdf733521734088","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2212e74ce479fed5752c46e6a69557c4f1b49d7b715f8955e29c8d836e00e7f6"},"ros-noetic-vision-opencv-1.16.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358983807,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"547e146092d27cc5f3345b3e3a10fa67","name":"ros-noetic-vision-opencv","requires":[],"size":8969,"version":"1.16.2","binstar":{"package_id":"63ccb0d75a31eb90f6a3625d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f689fc951fda795270b52561ccc2718acc863c4ccf7b7125918c9dba3cb3b87"},"ros-noetic-camera-calibration-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358821980,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"52ebb87a2a86f52107b8bf2024deec7b","name":"ros-noetic-camera-calibration","requires":[],"size":62794,"version":"1.17.0","binstar":{"package_id":"63ccb0da2ff78d332e7a1dc0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f18d3d453865d14b751bb8a3fa520cf13ccf2f47a2ddc0ac1a88ae18da017ee"},"ros-noetic-camera-info-manager-1.12.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674358831256,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ea2d805291bc09dd0892cd793d6fb0c2","name":"ros-noetic-camera-info-manager","requires":[],"size":47857,"version":"1.12.0","binstar":{"package_id":"63ccb100912363225b8e225c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8e2660527d0940249751b46561ee95856fba22e664e737f467fae5e3c182f35"},"ros-noetic-pcl-conversions-1.7.4-py39h2664d50_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.9.* *_cpython","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":"py39h2664d50_5","timestamp":1674359023112,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"59c1fe77bb71ee53fd5b9d586650005c","name":"ros-noetic-pcl-conversions","requires":[],"size":18586,"version":"1.7.4","binstar":{"package_id":"63ccb100cd65eb0e1467878f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5ec10dabc4327eae3cdd16f9843cc3918e0feef645648cf22b9f92f145d979f"},"ros-noetic-rqt-bag-0.5.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358627528,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2831b66220ccb1600c6452ebd12077cc","name":"ros-noetic-rqt-bag","requires":[],"size":81516,"version":"0.5.1","binstar":{"package_id":"63ccb1015a31eb90f6a366b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fdd530c334be4028e03843587f5b8eed8533582295bc374059d9eda655dd8c7"},"ros-noetic-controller-manager-msgs-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674358531463,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"03a7cbd4d0e1cbc8183ca209cb35bcd8","name":"ros-noetic-controller-manager-msgs","requires":[],"size":65272,"version":"0.19.6","binstar":{"package_id":"63ccb10314201bfa458f919f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"589a6e531229a49600aff2e29c7209ceafd68e2841edc467b863c576d4cb10e5"},"ros-noetic-moveit-msgs-0.11.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674359061739,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"01abcae6dcce0f332d422c1e65a2ed49","name":"ros-noetic-moveit-msgs","requires":[],"size":1296159,"version":"0.11.4","binstar":{"package_id":"63ccb21759c09271a4f33cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3379d179a5a6ffb67c1a795ffd3e0822855222d4e0920d4d45f8644d8aff6e67"},"ros-noetic-executive-smach-2.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414637122,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b482e9e0dccce0b4b9a4dc77dd80edcb","name":"ros-noetic-executive-smach","requires":[],"size":8372,"version":"2.5.0","binstar":{"package_id":"63cd1036912363225ba3b103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"107680366d6e603ed69777e8d4bf964a9ed6dd18671b6e9e8fbe0b6d0f4caec8"},"ros-noetic-rqt-service-caller-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415356993,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4a3553d8eb152c43840cbbb7ec201b77","name":"ros-noetic-rqt-service-caller","requires":[],"size":22397,"version":"0.4.10","binstar":{"package_id":"63cd10c9912363225ba3c28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64690dec41f5d638f91930b2cdd875755727353fbf535305358872c9b768c167"},"ros-noetic-nodelet-core-1.10.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415174594,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d89a162e626deaa7fb009a5fb6a35a7e","name":"ros-noetic-nodelet-core","requires":[],"size":8371,"version":"1.10.2","binstar":{"package_id":"63cd10cad0e8c095e2ca14ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6439b0909bea762078f1a362c31fd751453a78fa9d9d094523ebee1510eafa99"},"ros-noetic-rqt-moveit-0.5.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415258955,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4ff2b6a78eeac04f200e7407afe9d910","name":"ros-noetic-rqt-moveit","requires":[],"size":23643,"version":"0.5.10","binstar":{"package_id":"63cd10cbdbdf73352196d733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"829a756fd7a63e8e18127b3d226686c22d0f9d59f90b1e458295c692b35ba251"},"ros-noetic-rqt-graph-0.4.14-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384466749,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f05bc81a34606f0093b0cc7a3ff37410","name":"ros-noetic-rqt-graph","requires":[],"size":40685,"version":"0.4.14","binstar":{"package_id":"63cd10cc989160afcf4833b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81e61d4c21ca2896c3039639e1eebb205e1ab1c9ec01dcc59ac5eb1e02f13f4e"},"ros-noetic-rqt-publisher-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415449026,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"287052dab5ec060afda54b3c4b86da6b","name":"ros-noetic-rqt-publisher","requires":[],"size":29183,"version":"0.4.10","binstar":{"package_id":"63cd10ccdbdf73352196d766","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd6acd31daeb981aa0936952a2100ff11c6910021c8f780f6cdebe188683f81a"},"ros-noetic-tf-1.13.2-py39h9c56fca_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["graphviz >=6.0.2,<7.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h9c56fca_5","timestamp":1674414966956,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ef1cc92bde5ea870816a2e79865e6ae","name":"ros-noetic-tf","requires":[],"size":219726,"version":"1.13.2","binstar":{"package_id":"63cd10fccd65eb0e147f83eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db41342560475249edbb5eae7b9b2bcaaacfe19faf07e07a2084938c47be98c2"},"ros-noetic-rqt-console-0.4.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415362164,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4f452c567cff02a357a875052b17a1bb","name":"ros-noetic-rqt-console","requires":[],"size":59846,"version":"0.4.11","binstar":{"package_id":"63cd10fd8ff1ad27420b3c5c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"543967c12b377fb8cdd8263287a72d490af46fa5257a856e97e41ab5bb96746c"},"ros-noetic-tf2-kdl-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h46ec4ef_5","timestamp":1674415110752,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d5517cc0843e3b76672017419dcc9f56","name":"ros-noetic-tf2-kdl","requires":[],"size":18923,"version":"0.7.6","binstar":{"package_id":"63cd10fe5a31eb90f6b90d9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc68fc3b7efcd422347d801e63bf03bc9f6e7b393652b49779c09ee4020e5224"},"ros-noetic-tf2-geometry-msgs-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414684457,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"64d521d60e8a1e780eb13d791b444e2f","name":"ros-noetic-tf2-geometry-msgs","requires":[],"size":19463,"version":"0.7.6","binstar":{"package_id":"63cd10ffdbdf73352196fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83e629957801f90f415317c45e841966e16392a2bd1c61d2294c051949a4d1f7"},"ros-noetic-rqt-controller-manager-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385027698,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0e0532da9b6b3260200632e914abe43e","name":"ros-noetic-rqt-controller-manager","requires":[],"size":44582,"version":"0.19.6","binstar":{"package_id":"63cd168d912363225ba55282","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38206c7abf7dc29d53a80dd6b18254cb81a33fa803745a4614f175e55f84947f"},"ros-noetic-controller-manager-0.19.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385072143,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7b70913909847eb2d7686d58c3cac516","name":"ros-noetic-controller-manager","requires":[],"size":132670,"version":"0.19.6","binstar":{"package_id":"63cd16bedbdf7335219a4f53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4356a116b73e1b1f025e89bc8b0398d8d895da83563d1e0c0df39316d3b6d512"},"ros-noetic-realtime-tools-1.16.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674384849960,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"283220792b9429b4adae80d117c44204","name":"ros-noetic-realtime-tools","requires":[],"size":22951,"version":"1.16.1","binstar":{"package_id":"63cd16c2912363225ba55506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e02c807e443fd3eee92ce61528adebbe23f9c949c5787330643a0de50e49bf8e"},"ros-noetic-theora-image-transport-1.14.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libogg >=1.3.4,<1.4.0a0","libtheora >=1.1.1,<1.2.0a0","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384740520,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6933acfad04781c78ff770c2d4fd798c","name":"ros-noetic-theora-image-transport","requires":[],"size":151303,"version":"1.14.0","binstar":{"package_id":"63cd179e2e1172ba36a19dba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33cff47f9ba4b35c8f99c938050230ba5cd3c57fa361e5a9eae58618e1868d98"},"ros-noetic-compressed-depth-image-transport-1.14.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384986087,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b31f0831e7dec1ef52d67a060ccf2e79","name":"ros-noetic-compressed-depth-image-transport","requires":[],"size":117918,"version":"1.14.0","binstar":{"package_id":"63cd17a159c09271a4ffaab2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9e80e7f06587fee27b6b37e2e2f0d29f725110542f08f2bd34505f31777d96d"},"ros-noetic-rosbridge-library-0.11.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pillow","pymongo","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385162521,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d6756c613f96309620d8dcad127ea909","name":"ros-noetic-rosbridge-library","requires":[],"size":127997,"version":"0.11.16","binstar":{"package_id":"63cd17a3dbdf7335219aac44","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d2850336f2a31acf2d191bb2df35637b2ad8da1bc846f0464869f3f0ac2aa639"},"ros-noetic-polled-camera-1.12.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385065895,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e1770bb348d17f0799f28a1a4111b833","name":"ros-noetic-polled-camera","requires":[],"size":60139,"version":"1.12.0","binstar":{"package_id":"63cd17a95a31eb90f6bacd9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a42ee20fd8a8ce19b6cbe6fc599f9576ae2c1a01042f10cf2db81e7b97d8d8f"},"ros-noetic-image-publisher-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674385308844,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5298fbe00eae422368f568132856240","name":"ros-noetic-image-publisher","requires":[],"size":95023,"version":"1.17.0","binstar":{"package_id":"63cd17abb23346582c6031ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a98df112260e09c37f25c01ccb119f88b7b6a0eb2e5c4d902e513f30222d5fa"},"ros-noetic-image-view-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384484937,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"877b053662599e989a4ef86073167acc","name":"ros-noetic-image-view","requires":[],"size":328255,"version":"1.17.0","binstar":{"package_id":"63cd17ada21649515759f5f2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"397c80aad8aab2fef0bcbd048d82c5058eb8f9bf13ca880e1573ec18a9f418be"},"ros-noetic-twist-mux-msgs-2.1.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674384643134,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"75f63d7a673481814dd12d1ebe50c34a","name":"ros-noetic-twist-mux-msgs","requires":[],"size":45137,"version":"2.1.0","binstar":{"package_id":"63cd17b0c37c80a75bce2ebe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69400604c0c92a2c9771af601be82da424e4574445e2abad8661c8eb2daadd5b"},"ros-noetic-ddynamic-reconfigure-0.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-roscpp"],"build":"py39h46ec4ef_5","timestamp":1674384854918,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b09104a9ad1d6ab2aa9fb8ea3dd3f9a4","name":"ros-noetic-ddynamic-reconfigure","requires":[],"size":82446,"version":"0.3.2","binstar":{"package_id":"63cd17b2c37c80a75bce2ee2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38e77c0e198853c000e0c1b7a0791db5a9158e7981dd46647185a79490ada18f"},"ros-noetic-rqt-ez-publisher-0.6.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39h46ec4ef_5","timestamp":1674419339026,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"866576a55858c320b733839f09081af6","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":38878,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aed3352c295a6b506e143f1c964d5f9ce13345499046e3e48ad50367c1077c4"},"ros-noetic-jackal-base-0.7.4-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","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":"py39hae387e0_3","timestamp":1674425150085,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"495f79f8f38b5bb22e32a4eb5ab7f3a3","name":"ros-noetic-jackal-base","requires":[],"size":207030,"version":"0.7.4","binstar":{"package_id":"63cd86f60273ee116ae05ce1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e4cae9cf36735c861e427433cc61118a2ccad9a89323bbcec53b4b796918dce"},"ros-noetic-ros-comm-1.15.15-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414715982,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a836e7a61d36fd470dc5a0ae536a0cb9","name":"ros-noetic-ros-comm","requires":[],"size":9233,"version":"1.15.15","binstar":{"package_id":"63cd872bc37c80a75b007dfe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10d457de639269d5eb09473a68432997c02fba382723fa6157eede588bd201a7"},"ros-noetic-rqt-tf-tree-0.6.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415292038,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"12239b30f4c8d1130513095523fdbb36","name":"ros-noetic-rqt-tf-tree","requires":[],"size":23519,"version":"0.6.3","binstar":{"package_id":"63cd872ddbdf733521cf2103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9a88342772db9ee1634f23bb05ba2dedde9e168b072a8ec16ea819de33857a4"},"ros-noetic-rqt-msg-0.4.10-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418796743,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4307a8f6ecee9bb7d792f0834b91b8b6","name":"ros-noetic-rqt-msg","requires":[],"size":21827,"version":"0.4.10","binstar":{"package_id":"63cd872edbdf733521cf2113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fce0fcc32c8b4705842b7e93b8755e4f0aad0436cd691cf86205edea2df607be"},"ros-noetic-common-msgs-1.13.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414849926,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5ddde31fa9215ae115428c5c4146d34b","name":"ros-noetic-common-msgs","requires":[],"size":8134,"version":"1.13.1","binstar":{"package_id":"63cd873086de531a28ddc45b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcadf99677503ab5b2e3774662a439b0bb1b42e1231be86aa2553a6651d37f6a"},"ros-noetic-diagnostic-common-diagnostics-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","psutil","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418708875,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"77c9e478dc3d124ef6a4581c230630ee","name":"ros-noetic-diagnostic-common-diagnostics","requires":[],"size":38057,"version":"1.11.0","binstar":{"package_id":"63cd8731dbdf733521cf2127","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d1f4ca7ad6032cc3289a8a7e5e959919531604f2c153defe85d74c7a8fdf8f9"},"ros-noetic-laser-geometry-1.6.7-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674417837584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8e30def50e95260de86df5b1b86f39b0","name":"ros-noetic-laser-geometry","requires":[],"size":49304,"version":"1.6.7","binstar":{"package_id":"63cd873bd0e8c095e203494d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"671816f54eccd39b604cabddda9bea6e7a75701ae22dc4f470695ad540cb9c2b"},"ros-noetic-robot-state-publisher-1.15.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418301272,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"54ff2d19f3907b36414105b80e3d522a","name":"ros-noetic-robot-state-publisher","requires":[],"size":53712,"version":"1.15.2","binstar":{"package_id":"63cd873c5a31eb90f6dfa4b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c0be415693a4bc7d8939dc1494409787db8e76ce9ea17b91f657e182f7c56df"},"ros-noetic-rqt-reconfigure-0.5.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418056917,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9979771068a3a7d1dc17e96e98e0fd7c","name":"ros-noetic-rqt-reconfigure","requires":[],"size":60059,"version":"0.5.5","binstar":{"package_id":"63cd873dc37c80a75b008283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1f4527d0296901375e127dc33e6bb0f5de87f15790dedbb0b68797fbd77eeac"},"ros-noetic-rqt-robot-monitor-0.5.14-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415504082,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"20f9db57dba51aa45aad3478311059a5","name":"ros-noetic-rqt-robot-monitor","requires":[],"size":38241,"version":"0.5.14","binstar":{"package_id":"63cd873ed0e8c095e2034995","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8c6dad197781ecf9aefd30e79b67e5ced11d29eb97d09bf49cae41ebea02e26"},"ros-noetic-interactive-markers-1.12.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418054585,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1f2649e413741d82414793c49675bf8d","name":"ros-noetic-interactive-markers","requires":[],"size":144782,"version":"1.12.0","binstar":{"package_id":"63cd873fa64974fd0925dfa1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97ac67ca6b80d72cdcf3d77a94d4c261e75dc278211210e7667253bc7e8fb07a"},"ros-noetic-turtle-tf2-0.2.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424207538,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"49d848eeafd8219b648bd8e680032a65","name":"ros-noetic-turtle-tf2","requires":[],"size":53191,"version":"0.2.3","binstar":{"package_id":"63cd87b259c09271a414f6f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"383847ad761c36451c5fb88848e4fb1f57034af041e6f12a27515bd0e763ec77"},"ros-noetic-rqt-launch-0.4.9-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430587645,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f77a38341b14507f52b8948fa03e468c","name":"ros-noetic-rqt-launch","requires":[],"size":31503,"version":"0.4.9","binstar":{"package_id":"63cd87b3dbdf733521cf4b27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"769bb43930dfc9c8d8521a736187fb77648f6dbe3c77f800ce34123224c8d7eb"},"ros-noetic-turtle-tf-0.2.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419391338,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5ee726e4876c56fa4088c4c3c93b1198","name":"ros-noetic-turtle-tf","requires":[],"size":111001,"version":"0.2.3","binstar":{"package_id":"63cd87b45a31eb90f6dfb5c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b5e1e50440f00a395b89aef1f5c740146064e6db968d282677cfd17abf17855"},"ros-noetic-rqt-dep-0.4.12-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415554408,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9ba6381d274aa226e2bc3c0b665877de","name":"ros-noetic-rqt-dep","requires":[],"size":31927,"version":"0.4.12","binstar":{"package_id":"63cd87b5989160afcf5d12d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17f77ad3541d2d7a84ed5c53a3b8d803bfa5e1f7d914d969da4be0b16fea798b"},"ros-noetic-rosapi-0.11.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415693387,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"46c9ee79325694ca3eaa9ae7bc3cb642","name":"ros-noetic-rosapi","requires":[],"size":98437,"version":"0.11.16","binstar":{"package_id":"63cd8901c37c80a75b01b149","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"443085dde5d736450b750dccc84d5a4d22b288c18f491c728a9f96fab2356840"},"ros-noetic-image-common-1.12.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414768133,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ac477eac11096694c2c47b49dd38ade","name":"ros-noetic-image-common","requires":[],"size":8427,"version":"1.12.0","binstar":{"package_id":"63cd8b4514201bfa45a1a21f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5439e5bd43a13143cba0594fbcd54fe07cc152e2ce54608b09d1872a4271178c"},"ros-noetic-tf2-tools-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674414907264,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"88f654f31af741d5a8509b81ae6eea8b","name":"ros-noetic-tf2-tools","requires":[],"size":20193,"version":"0.7.6","binstar":{"package_id":"63cd8b47be293b9e162ebaea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffd59c0a0fb0ee9b54683d255bfb0d98aeb2f202004df190658c07781e42d86f"},"ros-noetic-twist-mux-3.1.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415073031,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dbf8896bc4b08127d2adaaef1645f2c6","name":"ros-noetic-twist-mux","requires":[],"size":98417,"version":"3.1.3","binstar":{"package_id":"63cd8cc8c37c80a75b03bb72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e03f2ef8f93e93825d3abf17f24eca46e870197fb50c696db88925859cb53e2a"},"ros-noetic-tf2-sensor-msgs-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415250556,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9ea0e8988dd569c2f1c5269f7f421385","name":"ros-noetic-tf2-sensor-msgs","requires":[],"size":15745,"version":"0.7.6","binstar":{"package_id":"63cd8d0a68b198bb95115bb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"322b2dc52fdaaefccfa1170b73e3f80de30752042cdabea86c13f0a7dd474648"},"ros-noetic-forward-command-controller-0.21.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415393126,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8b5f651b1c8599cdb9397a70db8bbe85","name":"ros-noetic-forward-command-controller","requires":[],"size":14451,"version":"0.21.0","binstar":{"package_id":"63cd8d96d0e8c095e205cfbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a390fcde975b84a4d8418abff037b89bdd77074336c2acc485f990cac2172ad"},"ros-noetic-control-toolbox-1.19.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674415270142,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"69aebbd50579733c6d8b54a645dbb495","name":"ros-noetic-control-toolbox","requires":[],"size":115310,"version":"1.19.0","binstar":{"package_id":"63cd8d99b23346582c7854be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75930c143d2f6cec8d98946da95d30b7598e01064136d251e3176c3f0205ef6c"},"ros-noetic-depth-image-proc-1.17.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674415050022,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dc0f7db2e5e6d3994251aaa7ba5cbf75","name":"ros-noetic-depth-image-proc","requires":[],"size":223905,"version":"1.17.0","binstar":{"package_id":"63cd8d9a2ff78d332eb6168e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc3b6f5bcace97016c5e4124279e084f42302d2cd1fa5999a0463a72694a0049"},"ros-noetic-image-proc-1.17.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674414745159,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb9a2412b7828b727957a97edb8d5f59","name":"ros-noetic-image-proc","requires":[],"size":189351,"version":"1.17.0","binstar":{"package_id":"63cd8d9bd0e8c095e205d00a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8fccdc8e0751d9f3c0b32d66e89532e2105305f8193dc23ae8e61367c90a0a2"},"ros-noetic-actionlib-tutorials-0.2.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418419065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9c615b07880da0af0927555b96bcac38","name":"ros-noetic-actionlib-tutorials","requires":[],"size":345483,"version":"0.2.0","binstar":{"package_id":"63cd934a989160afcf5f665d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"695d4f6bd779c00b11d920dd8b2e75463d71629d798072e44a8641161906f871"},"ros-noetic-rqt-pose-view-0.5.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyopengl","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418817673,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"045223e85a7ed22417392039d8e1c90b","name":"ros-noetic-rqt-pose-view","requires":[],"size":26616,"version":"0.5.11","binstar":{"package_id":"63cd934b68b198bb9512050b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39aadc20354731ddddaf86bdb01ebca2e6f01f0fb9933b812a708b824ac56393"},"ros-noetic-ros-core-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418557311,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8dcb70f74ec9d598850837ddff43a706","name":"ros-noetic-ros-core","requires":[],"size":8857,"version":"1.5.0","binstar":{"package_id":"63cd934c5a31eb90f6e40387","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ca08661265a10d1b03558aa82aaf0ac98e4c6bd3dcd8baa645ddd28bd0ff930"},"ros-noetic-rqt-srv-0.4.9-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430407506,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"01aa958ba8101f25fe9ec7248b7c3275","name":"ros-noetic-rqt-srv","requires":[],"size":15422,"version":"0.4.9","binstar":{"package_id":"63cd934e8ff1ad2742405c16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b91828e1a29d958c63146e8df821bb39a3f4f11685c2545c62d27cd53bfc8086"},"ros-noetic-geometry-tutorials-0.2.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430485982,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e3f7583e3e379137d7bc9fe200f26f15","name":"ros-noetic-geometry-tutorials","requires":[],"size":9741,"version":"0.2.3","binstar":{"package_id":"63cd93d6d0e8c095e208c53d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cccc801ab37655ef3402d41c461df7c85c22f70cb7867277ae0533d1518ea66"},"ros-noetic-jackal-description-0.8.5-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","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":"py39hae387e0_3","timestamp":1674430761119,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f065fa68776ca5fca193c00029276b2d","name":"ros-noetic-jackal-description","requires":[],"size":916380,"version":"0.8.5","binstar":{"package_id":"63cd93d8a64974fd09273cb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78736bc47fc0fd6c34ea3f5184facb01cece55c031cb9c572b8dcd878c7f2931"},"ros-noetic-diagnostics-1.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424144281,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"af57a0a83078e924a3c7ab45a74f5883","name":"ros-noetic-diagnostics","requires":[],"size":9434,"version":"1.11.0","binstar":{"package_id":"63cd93da989160afcf5f74f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd55fe6130b540c9815e3b520a242e6e695ac33a6d366c84138f6381a9b96ec1"},"ros-noetic-interactive-marker-tutorials-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424653509,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"533f68a9310eeed2f85614c8303326ae","name":"ros-noetic-interactive-marker-tutorials","requires":[],"size":105688,"version":"0.11.0","binstar":{"package_id":"63cd93dc5a31eb90f6e4590e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aeef4c6949e2537f46afd6ac003a8b2c935d23b09e14497970bed5c91d2923cf"},"ros-noetic-rqt-action-0.4.9-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674437370229,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1178b44ada0333d461391a13c24dce33","name":"ros-noetic-rqt-action","requires":[],"size":15433,"version":"0.4.9","binstar":{"package_id":"63cd93dedbdf733521d5ab42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"667e491c22a33f6b4dd64396913dac6526ace7de5000106d57bb2272fa7c68ad"},"ros-noetic-compressed-image-transport-1.14.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418671134,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"43b5c01622e199bb49252f14233f26b6","name":"ros-noetic-compressed-image-transport","requires":[],"size":132456,"version":"1.14.0","binstar":{"package_id":"63cd94aec37c80a75b0717dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5838a527803460d448d41c718eab8efbbb0ef267c31128237766781fa415e88d"},"ros-noetic-common-tutorials-0.2.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424502093,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"202f01b014a07eda74fede62bb50a8e8","name":"ros-noetic-common-tutorials","requires":[],"size":8967,"version":"0.2.0","binstar":{"package_id":"63cd94e6989160afcf5ff522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b6d9506f734252687c957786d934654f0d96dc34a6aaf512c5b427e71f1debb"},"ros-noetic-joint-state-controller-0.21.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418527917,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b32aea7f0e65e2c5e7d5cf759b5c532d","name":"ros-noetic-joint-state-controller","requires":[],"size":51391,"version":"0.21.0","binstar":{"package_id":"63cd953cc37c80a75b0756bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30c85a6259200f3c8e48ead793d4e9e86a1220538a45957609c1cb89b3c5ab44"},"ros-noetic-rqt-plot-0.4.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","matplotlib-base","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674417822818,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ac2df7b16d3011795c2d2ce48143d3d","name":"ros-noetic-rqt-plot","requires":[],"size":47281,"version":"0.4.13","binstar":{"package_id":"63cd953fd0e8c095e20948c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35bb81fd022682782b1c85765b79de7ea0436b2421d6dc2b3028da6bc0954a96"},"ros-noetic-rqt-image-view-0.4.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418154884,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6bac72b00fe9e313122223e8abaa87b2","name":"ros-noetic-rqt-image-view","requires":[],"size":66871,"version":"0.4.16","binstar":{"package_id":"63cd95418ff1ad2742410e13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2661006fabb147557bbb99c9e6b5d634069342a6537d0a3357133428ba385cfe"},"ros-noetic-ros-base-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674423828778,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f45ade838460d00700cb4753406819ae","name":"ros-noetic-ros-base","requires":[],"size":8744,"version":"1.5.0","binstar":{"package_id":"63cd9565d0e8c095e20950c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"539545b9bdf3f820189509cd238760ac59f0c2b0ab6746f06886ac7c42afa3e4"},"ros-noetic-rosbridge-server-0.11.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["autobahn","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419552221,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5d1420363a230efe73a24a0d605915d6","name":"ros-noetic-rosbridge-server","requires":[],"size":39104,"version":"0.11.16","binstar":{"package_id":"63cd95f55a31eb90f6e4bfb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47a5c718afff491bd7fad9d6985488c0a834c17c0bd5aa37c0403c2eda683b20"},"ros-noetic-position-controllers-0.21.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418340384,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3690002a795133b5c733a055d6a888b7","name":"ros-noetic-position-controllers","requires":[],"size":57247,"version":"0.21.0","binstar":{"package_id":"63cd9a670273ee116ae47e63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c83e4e73123e0f86b3704bba15a1a2073c6254f5161830e4071531f81443cf01"},"ros-noetic-velocity-controllers-0.21.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418142028,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f1327319535cfd63910587bb9e955619","name":"ros-noetic-velocity-controllers","requires":[],"size":70688,"version":"0.21.0","binstar":{"package_id":"63cd9a69dbdf733521d84247","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0848c746f98b13d99e84d87285f9cbfc9a58291bf5115c3addff01301e733d4"},"ros-noetic-amcl-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674417928001,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b69c93501d2ff45e0ccf441af7131049","name":"ros-noetic-amcl","requires":[],"size":281123,"version":"1.17.3","binstar":{"package_id":"63cd9a6d2ff78d332eb95e25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea63e09afbd5a5b084ac0d7523bfb05c03e718e5bb63427f711ce6b66ce0e3ab"},"ros-noetic-diff-drive-controller-0.21.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674418777567,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fb843218fa85c6aef2510308d4b72266","name":"ros-noetic-diff-drive-controller","requires":[],"size":143068,"version":"0.21.0","binstar":{"package_id":"63cd9a6fdbdf733521d84319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3a673bd6bff71a251ddbbaad2d48f55772d186fc8d8e307dc5045337dee9631"},"ros-noetic-gmapping-1.4.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418121907,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eb366c3a1aa2cd27f1d9b8e34f79a12b","name":"ros-noetic-gmapping","requires":[],"size":342053,"version":"1.4.2","binstar":{"package_id":"63cd9a89dbdf733521d847e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1eba3733ab6728a836271101bd90382f2016f3ccd6d1a950cc72efbe3a2784d"},"ros-noetic-realsense2-camera-2.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-ddynamic-reconfigure","ros-noetic-diagnostic-updater","ros-noetic-genmsg","ros-noetic-image-transport","ros-noetic-librealsense2","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-tf"],"build":"py39h46ec4ef_5","timestamp":1674418453242,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1c1ca38b2ee0949a385c68b64164f32c","name":"ros-noetic-realsense2-camera","requires":[],"size":356429,"version":"2.3.2","binstar":{"package_id":"63cd9a8bdbdf733521d8489e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cbfe3c5c6d4252fe6ac200f3b7dc47ead7fe3639cbd1b94be9d292dc34a82f0"},"ros-noetic-gazebo-ros-2.9.2-py39h9530969_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h9530969_5","timestamp":1674419075822,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cfaad0ce820b0c14df584b0f8228de32","name":"ros-noetic-gazebo-ros","requires":[],"size":331058,"version":"2.9.2","binstar":{"package_id":"63cd9b9b8ff1ad27424363d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cf8b1f5c92c79467a19cbbff6c2117f362af06695c03ba2d5c30bb292e5fcf8"},"ros-noetic-warehouse-ros-0.9.5-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674418549174,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a5b5369179476897bdca38fc752e70a8","name":"ros-noetic-warehouse-ros","requires":[],"size":101414,"version":"0.9.5","binstar":{"package_id":"63cd9b9d989160afcf60f1c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a49df9007213959e0462e7a5ea5df3d6589d260ea2b25115002d13a054c9ad33"},"ros-noetic-nmea-navsat-driver-0.6.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyserial","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419118528,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"628dc20d1ea3c3c711815f77bfa72857","name":"ros-noetic-nmea-navsat-driver","requires":[],"size":30983,"version":"0.6.1","binstar":{"package_id":"63cd9d53c37c80a75b0a4686","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9414f8e3f9b64f862d38134369d95cef934a943c52a0f7244ee03bf9ed46eef"},"ros-noetic-geometry2-0.7.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419525451,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9bf38d79a14f4da54c740913dc792710","name":"ros-noetic-geometry2","requires":[],"size":8738,"version":"0.7.6","binstar":{"package_id":"63cd9d55c37c80a75b0a4688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ba2887541b6a09e419a02bc310bfd26890241352eeaf40152ed0c44a469a037"},"ros-noetic-tf-conversions-1.13.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418513101,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"402a11754cc37dbf1f882fdc9b708eeb","name":"ros-noetic-tf-conversions","requires":[],"size":23031,"version":"1.13.2","binstar":{"package_id":"63cd9e5168b198bb95130c53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7baaf04cd6ccfd53216ee2d3bb2891f0c369f0e4334c3dac6546ea6a9fb4d2d2"},"ros-noetic-rqt-nav-view-0.5.7-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674418266010,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9bfba0f5ff5ac5bcc1fa7668b1c82bf7","name":"ros-noetic-rqt-nav-view","requires":[],"size":25662,"version":"0.5.7","binstar":{"package_id":"63cd9e53912363225bcece18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb33754630011eb92a1d074fd122a7245ae3dc8a2e67b6d6574ee4b3e7a77cc7"},"ros-noetic-pcl-ros-1.7.4-py39h2664d50_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python 3.9.* *_cpython","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":"py39h2664d50_5","timestamp":1674419432943,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"546edd9d19f6314c8b85943f2fd6fddf","name":"ros-noetic-pcl-ros","requires":[],"size":1630735,"version":"1.7.4","binstar":{"package_id":"63cd9e58dbdf733521daa1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7edc661357b7d448512d4d853891a9efa9e1ac9008980d354c92e43b0c01e6f1"},"ros-noetic-stereo-image-proc-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419778471,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"344a97b449aab8134174b39e8fe64248","name":"ros-noetic-stereo-image-proc","requires":[],"size":236377,"version":"1.17.0","binstar":{"package_id":"63cd9e5a989160afcf612380","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8b8ef86e2c7e637500444813cd20f77ae7054d38f8202d0702fc6be9128d2fa"},"ros-noetic-imu-filter-madgwick-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674419816287,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ef719a2decd3369d5ea91efea0fa594","name":"ros-noetic-imu-filter-madgwick","requires":[],"size":166732,"version":"1.2.5","binstar":{"package_id":"63cda06bb23346582c7b4d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0097ee00fdb5915ded6d5e70e1f6fc983c2ab33102a446f78ef128e8185c8dcd"},"ros-noetic-imu-complementary-filter-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674420073009,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cadd639466df8e59952ea7bd531cf520","name":"ros-noetic-imu-complementary-filter","requires":[],"size":116112,"version":"1.2.5","binstar":{"package_id":"63cda06ccd65eb0e14ab1e74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8a6b122a17fd34dc9873f74a90bb4e7d3f024d426d764c8c3cd5a37a0f1cef5"},"ros-noetic-hector-trajectory-server-0.5.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674420319275,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"51d7c955dc936416a5e353180478bd16","name":"ros-noetic-hector-trajectory-server","requires":[],"size":53134,"version":"0.5.2","binstar":{"package_id":"63cda06dedf45d7c2ea7414b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbe59395b2f929c70903e090f70f425eee37f62d5cba9c9a1163ed23278ba7d6"},"ros-noetic-image-transport-plugins-1.14.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674425021734,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"88dcdb320b06597b3a8403598447ba91","name":"ros-noetic-image-transport-plugins","requires":[],"size":9603,"version":"1.14.0","binstar":{"package_id":"63cda859cd65eb0e14acab7f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34fcbcd4c320938e48dade3c06f467b84b58604934d31ede2f81aa8aa0dc0d4c"},"ros-noetic-robot-localization-2.7.4-py39hae387e0_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libcxx >=14.0.6","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":"py39hae387e0_5","timestamp":1674434503950,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4f13a60b3839f226a299e891fd558afe","name":"ros-noetic-robot-localization","requires":[],"size":674006,"version":"2.7.4","binstar":{"package_id":"63cda8b5d0e8c095e212df59","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32826292a3966f7c717d46b7ffb1baf47d211e2b41a813552668515126b66e72"},"ros-noetic-image-rotate-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424402965,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f11033343524e40857ba089f7056f1b6","name":"ros-noetic-image-rotate","requires":[],"size":107518,"version":"1.17.0","binstar":{"package_id":"63cda8bf5a31eb90f6ea475b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"647fa535965fe7ab1a2cabc99e5a140cc67220271f881eb0c16a979209b9ef2e"},"ros-noetic-rqt-bag-plugins-0.5.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pillow","pycairo","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430700958,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ae47f6a00c3b68092ee8e294d67c00c8","name":"ros-noetic-rqt-bag-plugins","requires":[],"size":34604,"version":"0.5.1","binstar":{"package_id":"63cdab0c912363225bd2787a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cb3dee7a8cd6da764ae051fbfae92fab31ccc0d689f5175ca53ffa2565bb705"},"ros-noetic-rosbridge-suite-0.11.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674425455460,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"242be75b048c954f14459c1b2c6722e3","name":"ros-noetic-rosbridge-suite","requires":[],"size":8967,"version":"0.11.16","binstar":{"package_id":"63cdad67c37c80a75b0fb239","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d27e6859c042a6984d6287d58b710d31fc29ae37ea50509423baf175f4394f9"},"ros-noetic-mbf-utility-0.4.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674437627820,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8cb5cfeb5f59059c4f952a5cc7b52cb9","name":"ros-noetic-mbf-utility","requires":[],"size":30787,"version":"0.4.0","binstar":{"package_id":"63cdad748ff1ad274248812f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15d5f3c08c63eeb782a3821654b1816cebb75a2fc3eefc5cb8368c544492743e"},"ros-noetic-geometry-1.13.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674423989494,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"306c06bfe1b041a8b4725055082e1945","name":"ros-noetic-geometry","requires":[],"size":9822,"version":"1.13.2","binstar":{"package_id":"63cdb1592b70bce8309906fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45a1909fc2484148c6f0fd69dc9d021ccdea2b56c21f379a50eaeb7357b87db4"},"ros-noetic-velodyne-gazebo-plugins-1.0.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424715956,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"98e073b62b463cfc8bb3fd6b008492f6","name":"ros-noetic-velodyne-gazebo-plugins","requires":[],"size":121953,"version":"1.0.13","binstar":{"package_id":"63cdb2ccc37c80a75b11b496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7be7581f4f0b461566be6d80765b35b1c1764c89b1234f4b42f9397547eae7e5"},"ros-noetic-perception-pcl-1.7.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424894735,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4568e5c57ba84b3f40044d77cb8328ce","name":"ros-noetic-perception-pcl","requires":[],"size":9904,"version":"1.7.4","binstar":{"package_id":"63cdb2d08ff1ad27424a71a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b60d929bd3d7562db7d63894e4eb19e55a496c21101065a751cf314c9df6f321"},"ros-noetic-pointgrey-camera-description-0.15.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424808708,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8c9ea35b3db68a4aa3bafadb221b7c20","name":"ros-noetic-pointgrey-camera-description","requires":[],"size":35152,"version":"0.15.1","binstar":{"package_id":"63cdb2d20273ee116ae9004d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aba16885d39086dc5770ded9a0b6663584be1ef143ef9dbec9db796ec93ffaa4"},"ros-noetic-turtlebot3-gazebo-1.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gazebo","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros","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-description"],"build":"py39h46ec4ef_5","timestamp":1674425128326,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83ca4edef6883b075686151835c58ab7","name":"ros-noetic-turtlebot3-gazebo","requires":[],"size":1488682,"version":"1.3.2","binstar":{"package_id":"63cdb4775a31eb90f6ed1873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7e4c83b150511f860d2f22aa84991ba621eed3a207cad53c696bafc9048708a"},"ros-noetic-turtlebot3-bringup-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424705494,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"18588a5043b1f048ae5c8900743f4a3f","name":"ros-noetic-turtlebot3-bringup","requires":[],"size":54904,"version":"1.2.5","binstar":{"package_id":"63cdb47b5a31eb90f6ed1d57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77f4a39a6faeb34b126c6646cd7f14d46afe8290a7383bea73e908fc414285fc"},"ros-noetic-turtlebot3-fake-1.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674425356017,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8b8fe6894a96c958e37e7f4d6a05ad08","name":"ros-noetic-turtlebot3-fake","requires":[],"size":43436,"version":"1.3.2","binstar":{"package_id":"63cdb47d8ff1ad27424b1dd6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"628f5d47b13e90c977d5624e2a67ac601179b1ab40d2a06d564bb3670a9cc46c"},"ros-noetic-costmap-2d-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424470510,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8b296a38b471e3fe61dfeaa532c2da5f","name":"ros-noetic-costmap-2d","requires":[],"size":508174,"version":"1.17.3","binstar":{"package_id":"63cdb4a5912363225bd4f4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa6a8ab248d32eab18224a5c316c600c539dc2a9deb025f3ecdf1706d4699d2d"},"ros-noetic-gazebo-ros-control-2.9.2-py39h9530969_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h9530969_5","timestamp":1674425488560,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"968a633f515a2ab1bc92df178565c2df","name":"ros-noetic-gazebo-ros-control","requires":[],"size":184120,"version":"2.9.2","binstar":{"package_id":"63cdb4a714201bfa45a546c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe31740c642e39527eff0976cb26daf4a2de3e6563536c8f91f3e7c739c09045"},"ros-noetic-laser-filters-1.9.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424978629,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"130b10b0046256c288431907f59719c3","name":"ros-noetic-laser-filters","requires":[],"size":703169,"version":"1.9.0","binstar":{"package_id":"63cdb4a9c37c80a75b121f2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e566963993ed15bd86ae6a7a39907b305ee433683ac6afc642dcebe37be3b68b"},"ros-noetic-moveit-resources-fanuc-moveit-config-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674424645222,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"bb45d4d754575666bbab8a1c051c2713","name":"ros-noetic-moveit-resources-fanuc-moveit-config","requires":[],"size":25659,"version":"0.8.2","binstar":{"package_id":"63cdb4aad0e8c095e217246d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0b69767c96dc66cc8d70c4cfa56ed7000016b9a216b1e49614b3a014400ef97"},"ros-noetic-slam-toolbox-1.5.7-py39hd41f724_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libcxx >=14.0.6","liblapack >=3.9.0,<4.0a0","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-interactive-markers","ros-noetic-libg2o","ros-noetic-map-server","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-slam-toolbox-msgs","ros-noetic-sparse-bundle-adjustment","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","suitesparse >=5.10.1,<6.0a0","tbb >=2021.7.0","tbb-devel","xorg-libx11","xorg-libxext"],"build":"py39hd41f724_5","timestamp":1674425703712,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6c530b21089226a790688a8435191da4","name":"ros-noetic-slam-toolbox","requires":[],"size":1474250,"version":"1.5.7","binstar":{"package_id":"63cdb583c37c80a75b124caa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"893a0dced7c2adb671905b747bbb66674f6cab528261c06230a96e261c51691d"},"ros-noetic-effort-controllers-0.21.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674429909100,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c9efe1f28cf2e9e8399894fb24d2c9e1","name":"ros-noetic-effort-controllers","requires":[],"size":82387,"version":"0.21.0","binstar":{"package_id":"63cdb698b23346582c7fa779","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b1850958561fa6f4605ca2bfed46e91bf251c3b738095fc35b5ffb9c600c930"},"ros-noetic-laser-assembler-1.7.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430207065,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"829e231a33f8766b113f178c8e9dafc6","name":"ros-noetic-laser-assembler","requires":[],"size":495906,"version":"1.7.8","binstar":{"package_id":"63cdb69dcd65eb0e14b0e502","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81ee1eb4989d206d41b868a9729c950012bcbf0758db247502a99d9f40c65b98"},"ros-noetic-interactive-marker-twist-server-1.2.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674437869674,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3d490b17015a320300a080c27204eea0","name":"ros-noetic-interactive-marker-twist-server","requires":[],"size":31893,"version":"1.2.2","binstar":{"package_id":"63cdb6acd0e8c095e21800be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90ef6aff15b8713a15a69a9c4f7a38675644c0f2c493c73cff3732beaaad10bb"},"ros-noetic-image-pipeline-1.17.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430296879,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c1dceb795950a7d72f13d03086516b98","name":"ros-noetic-image-pipeline","requires":[],"size":10063,"version":"1.17.0","binstar":{"package_id":"63cdb7ed2ff78d332ec1945c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ddd133172397909747c03b2f0e0a5c644aed484dd2a4fa2cdea61687f30838f9"},"ros-noetic-robot-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430161387,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b2c320f93fb7e86c3d8b197acf428cd8","name":"ros-noetic-robot","requires":[],"size":9660,"version":"1.5.0","binstar":{"package_id":"63cdc3e8dbdf733521eb8531","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7a009a8153beabd59a69992b5ffc7ee886d7ae67db7bd2e620374aab4287d9c"},"ros-noetic-velodyne-simulator-1.0.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430627985,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"06a33bccd1d7b198886d3e3e5e971a20","name":"ros-noetic-velodyne-simulator","requires":[],"size":10369,"version":"1.0.13","binstar":{"package_id":"63cdc3ead0e8c095e21e2fc7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf8fa3cef74b02038d2481c98d0031b0a45846ba25072910159322185b4336a4"},"ros-noetic-turtlebot3-example-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430485262,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1cf5f1b2dbe13642dbefafde871624ef","name":"ros-noetic-turtlebot3-example","requires":[],"size":50833,"version":"1.2.5","binstar":{"package_id":"63cdc4a8cd65eb0e14b57d68","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d15973eb7d1206032a5032cbcdcb719b874561b346f2ba9269c296b4752990b"},"ros-noetic-turtlebot3-slam-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674430335492,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a3ff9fa48709274c1016843ecbc78b75","name":"ros-noetic-turtlebot3-slam","requires":[],"size":42714,"version":"1.2.5","binstar":{"package_id":"63cdc4acdbdf733521ebf789","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87a072839c9317cd9dffe9505c03f861f77a295e436410f6aa1f96532a4f3611"},"ros-noetic-turtlebot3-simulations-1.3.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-fake","ros-noetic-turtlebot3-gazebo"],"build":"py39h46ec4ef_5","timestamp":1674430627347,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"252dd3882a977a8375504c7a3c26be28","name":"ros-noetic-turtlebot3-simulations","requires":[],"size":10467,"version":"1.3.2","binstar":{"package_id":"63cdc4aecd65eb0e14b57d98","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2dbed9772f07775d304c369dec5b1f3f3c23f8d8d54923e65f55ce32834171d"},"ros-noetic-laser-pipeline-1.6.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674432616547,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cb3eea279251ea6a24e007b9ee59825c","name":"ros-noetic-laser-pipeline","requires":[],"size":9389,"version":"1.6.4","binstar":{"package_id":"63cdd077dbdf733521efe04d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"187454fcd2d844aa8585291f2b9477eb9dd0ee8f0be03dd6c9c0d5e611a5dafa"},"ros-noetic-sick-tim-0.0.17-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libusb >=1.0.26,<2.0a0","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-xacro"],"build":"py39h46ec4ef_5","timestamp":1674434395402,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ee3f2b51fe40d8262aca596ba45d2472","name":"ros-noetic-sick-tim","requires":[],"size":1098633,"version":"0.0.17","binstar":{"package_id":"63cdd7db2ff78d332eca94a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25a761e0f1a592334325fd8d019dfd30f46ea95a540431a150ec0842a891fc5d"},"ros-noetic-perception-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674434515526,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"75d6d1138d4ab20b9826e3d37bc4fa90","name":"ros-noetic-perception","requires":[],"size":10387,"version":"1.5.0","binstar":{"package_id":"63cdd7e086de531a28e0ea71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"793fff420ab8fcc23bd6984fa9c2931f5046ff8057b0720188415532439d5628"},"ros-noetic-rviz-1.14.19-py39hba1f284_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","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":"py39hba1f284_5","timestamp":1674435584574,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b9e69b0fdd7d483c9cfced2d23505070","name":"ros-noetic-rviz","requires":[],"size":2796516,"version":"1.14.19","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"219421116fe72b15a4b643a13cd73bd2c7d453f2e6aae055ea5f298b449ed09e"},"ros-noetic-rviz-1.14.20-py39h4f7a39c_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp >=5.2.5,<5.2.6.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python 3.9.* *_cpython","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-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.1,<3.2.0a0","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h4f7a39c_6","timestamp":1681948598565,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"07cb26504a0fd578061216fe56fe167c","name":"ros-noetic-rviz","requires":[],"size":2801517,"version":"1.14.20","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"59e7b7eb387f9a33699ba307b2c830dbcc77158b296abe06cca96202087caffe"},"ros-noetic-rqt-rviz-0.7.0-py39h83befe1_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h83befe1_5","timestamp":1674437176235,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"df15223bda8d44a7cd8d93a897ce251a","name":"ros-noetic-rqt-rviz","requires":[],"size":46077,"version":"0.7.0","binstar":{"package_id":"63cddf59dbdf733521f677f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8500c05e098fed0a83555295421876d2dcd4965bbb7503ba6c81f0f92725676a"},"ros-noetic-rviz-python-tutorial-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz"],"build":"py39h46ec4ef_5","timestamp":1674438068848,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"897c7fcf6ed8f70edbac59d04377800c","name":"ros-noetic-rviz-python-tutorial","requires":[],"size":18414,"version":"0.11.0","binstar":{"package_id":"63cddfa85a31eb90f6f8c65b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bef7ebe3732a2cde09df9eba6ae64bd5b7fdeff788290c84ba0c58fc3632c36d"},"ros-noetic-jackal-viz-0.4.0-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-rviz"],"build":"py39hae387e0_3","timestamp":1674437482798,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4c373c80a53b9e33c90a312d8342b589","name":"ros-noetic-jackal-viz","requires":[],"size":17523,"version":"0.4.0","binstar":{"package_id":"63cddfaa912363225bdf3cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14b5931321fcb72d489f921c4c29887b82f52325bc36191589f53dbe23f6b846"},"ros-noetic-librviz-tutorial-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674437834367,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"83bcc334c63a59aedd74001baa0b95d3","name":"ros-noetic-librviz-tutorial","requires":[],"size":27809,"version":"0.11.0","binstar":{"package_id":"63cddfab0273ee116aefaea9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9bb9e67e2866b3534dcb5ff884606083e7bfe7713e36262726c4bbb5cc72225"},"ros-noetic-rviz-plugin-tutorials-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674437496155,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ffe14c6e7886cb405d55efe0efd5338c","name":"ros-noetic-rviz-plugin-tutorials","requires":[],"size":126018,"version":"0.11.0","binstar":{"package_id":"63cddfad989160afcf69fcff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18ba549cecc8a258e2b7164ac3b852bd10b1c418cb1f993b6d1c7091e97e0aa5"},"ros-noetic-urdf-tutorial-0.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674438353622,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ba6ee5ebb2c943c7f583d2c15fbafeca","name":"ros-noetic-urdf-tutorial","requires":[],"size":823106,"version":"0.5.0","binstar":{"package_id":"63cddfaf59c09271a4221fe1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1edcbb30017ce825dd171ab641a0aeedddf7683c4487e0542e0f8ec9dc19f0bb"},"ros-noetic-moveit-resources-panda-moveit-config-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674439611432,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"431c17a26a21ccc41072f3667e7bf2f1","name":"ros-noetic-moveit-resources-panda-moveit-config","requires":[],"size":29875,"version":"0.8.2","binstar":{"package_id":"63cde1a159c09271a422989e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a65191c241f9b0de7b04976474947dd6d9608bb38afdd04882841e912f97da8"},"ros-noetic-jackal-desktop-0.4.0-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-noetic-jackal-viz"],"build":"py39hae387e0_3","timestamp":1674441113719,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4b3a62308a7a0d8c3a41b68c9aebb839","name":"ros-noetic-jackal-desktop","requires":[],"size":9865,"version":"0.4.0","binstar":{"package_id":"63cde1a4b23346582c86752a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d698308c040cd20ef5b4cb135c6b5af6d2278100e3166b5e36b3d5c75827912"},"ros-noetic-visualization-tutorials-0.11.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674440480628,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6d991c1c8f0b7fd72f62f4e80fd4f52c","name":"ros-noetic-visualization-tutorials","requires":[],"size":10382,"version":"0.11.0","binstar":{"package_id":"63cde1a68ff1ad274259f6a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f541d2f9fb5526a75179ff84a60c02f876d89d18614312e04577d96ab6ab92b"},"ros-noetic-rqt-robot-dashboard-0.5.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674439874956,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a202d3ce5c26b4e9ebb50b4df872acd0","name":"ros-noetic-rqt-robot-dashboard","requires":[],"size":1678302,"version":"0.5.8","binstar":{"package_id":"63cde1a859c09271a42298e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ee32ce30c151d84d6ccc71acfcf6154620de2e668146db43a471848d90f454a"},"ros-noetic-rqt-common-plugins-0.4.9-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674440284021,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7ef149eaf3ace3a9f21c2dd53ee9a506","name":"ros-noetic-rqt-common-plugins","requires":[],"size":10531,"version":"0.4.9","binstar":{"package_id":"63cde32c912363225be036ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e639399c0cae2f6b3cfe0c9da4fbe9e91f82415b66ee271223f0b2bddab9be2"},"ros-noetic-viz-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674457276571,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0d80bf884a64fa33f5ec1c23b8d0d9b8","name":"ros-noetic-viz","requires":[],"size":10578,"version":"1.5.0","binstar":{"package_id":"63cde32d5a31eb90f6f9b3d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"418f3e3a3cbb7a9999bd0b4ef7e7375dfdf3b4c25c53d4f3131bb0c32a84e3a5"},"ros-noetic-rqt-robot-plugins-0.5.8-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674452246059,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f42e8f5f1408b285630d5f20cf7e615c","name":"ros-noetic-rqt-robot-plugins","requires":[],"size":11094,"version":"0.5.8","binstar":{"package_id":"63cde32db23346582c869736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a161f3e494922ce592bef238564c6edc05f317a577ed577fcbf84968fe863f4"},"ros-noetic-desktop-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674470709084,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6714956d835b35aa9118b6f1fd0d7ec6","name":"ros-noetic-desktop","requires":[],"size":11014,"version":"1.5.0","binstar":{"package_id":"63cde32e8ff1ad27425a77b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ab62feaf47064eeaccd1ff22f5dc0e0ba67782291e7c509224dbb816092f1f9"},"ros-noetic-rviz-imu-plugin-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674438688724,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"dccb7510b492bd68e097c3f0a00e12ff","name":"ros-noetic-rviz-imu-plugin","requires":[],"size":105172,"version":"1.2.5","binstar":{"package_id":"63cde835912363225be18fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d9a3e6b7609f286f5f7e6557d511afe09da2e8e07e29d10a55b9b8ea5815ce9"},"ros-noetic-costmap-converter-0.0.13-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674438172184,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f0967729b638a90cd41271fbe809e64f","name":"ros-noetic-costmap-converter","requires":[],"size":400601,"version":"0.0.13","binstar":{"package_id":"63cde836c37c80a75b25a534","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ea80cbbfb090d6d0122f91e2428dbc4bdb29bab8b8402a2059ab1ee55482dad"},"ros-noetic-imu-tools-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674439983652,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"af1e1ec69a8280a6ea6f078ed076c126","name":"ros-noetic-imu-tools","requires":[],"size":10373,"version":"1.2.5","binstar":{"package_id":"63cded40912363225be2beb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3050b99d0e9eafd9be9e5a6e3d64691210a933141c8b9d78ce0a5fa1b880e66f"},"ros-noetic-urdf-sim-tutorial-0.5.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674440919499,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"398f2c740bb993ab34d069df0301f9ef","name":"ros-noetic-urdf-sim-tutorial","requires":[],"size":20164,"version":"0.5.1","binstar":{"package_id":"63cdf1add0e8c095e234b6d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1c7af2b0d70dba500b676233a5890501773e166a10122bcde2047b39a320a55"},"ros-noetic-hector-gazebo-plugins-0.5.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gazebo","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674440384318,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c8cbf4ec1fdfb52c137887b7fcc18e5f","name":"ros-noetic-hector-gazebo-plugins","requires":[],"size":651897,"version":"0.5.4","binstar":{"package_id":"63cdf1e2c37c80a75b2892e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e63a6fe7edff6a121029526262089ae42ad771c5338ddc59fe03c8c808d29236"},"ros-noetic-gazebo-plugins-2.9.2-py39h9530969_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h9530969_5","timestamp":1674441479623,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d25b037b3a6037dc47b215b14a6eb760","name":"ros-noetic-gazebo-plugins","requires":[],"size":2148769,"version":"2.9.2","binstar":{"package_id":"63cdf1ecc37c80a75b289417","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e00d3cbccafd3676edf1948e6bcbbd82d985dfb949c2a747722fd7e9c4d8e5f"},"ros-noetic-nav-core-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674439776241,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ec3bd84c76ba01a89d4f5f4b5728a525","name":"ros-noetic-nav-core","requires":[],"size":16079,"version":"1.17.3","binstar":{"package_id":"63cdf328b23346582c88f8ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39b947e3650e428b17007ce19ccf79b435886a37928b5f15476b1f312f871197"},"ros-noetic-gazebo-ros-pkgs-2.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674442046847,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c141e3bc35c9a88d0433effeb3f5e69c","name":"ros-noetic-gazebo-ros-pkgs","requires":[],"size":10621,"version":"2.9.2","binstar":{"package_id":"63cdf5458ff1ad27425fd4b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f0d839e8670cf8f5f6bf587ff77907bf76df678b41f038e14ec6c2697047b06"},"ros-noetic-mbf-costmap-core-0.4.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674441913288,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e8f4af4cc7831ae67ab7953b4f95e9d","name":"ros-noetic-mbf-costmap-core","requires":[],"size":16460,"version":"0.4.0","binstar":{"package_id":"63cdf547989160afcf6c8e0e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b944f30e888f0253d3406b8c31cf1c8e14627620be576c13918a66e25629f0c"},"ros-noetic-jackal-gazebo-0.4.0-py39hae387e0_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","python 3.9.* *_cpython","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":"py39hae387e0_3","timestamp":1674450472218,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a9e80377e5cd91b4786f0b614661b292","name":"ros-noetic-jackal-gazebo","requires":[],"size":841414,"version":"0.4.0","binstar":{"package_id":"63ce106a208d2222c0b2adc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb1d4c35ea52b6b61e4e69a4a32c99506941149b7eb7d1ed1b99d30ef1e58061"},"ros-noetic-moveit-core-1.1.11-py39hf4704b6_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","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","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39hf4704b6_5","timestamp":1674451203660,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f7e81ae2ccd12d499d71b9bd8d077e6e","name":"ros-noetic-moveit-core","requires":[],"size":1686912,"version":"1.1.11","binstar":{"package_id":"63ce1394cd65eb0e14c9f42f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"728865ee80eedf87274c5742b19f0cc75902b3dc8c240300ff487ca1ecc45a87"},"ros-noetic-clear-costmap-recovery-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674452047896,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ff95f6d8f01b7c44f5b8391eae7a0c80","name":"ros-noetic-clear-costmap-recovery","requires":[],"size":43266,"version":"1.17.3","binstar":{"package_id":"63ce1739989160afcf72bf28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94828750238f5f1ef321cc800f9cfd8d68419fb3604ddc247e6704d46bf42fed"},"ros-noetic-navfn-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674451810584,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ef0c3b5ad0ab92fd1a6a021ff1c484e0","name":"ros-noetic-navfn","requires":[],"size":124528,"version":"1.17.3","binstar":{"package_id":"63ce173b68b198bb951c5e50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3dbcfd4d1f05afde968aa2bc744908818293a2888a26a0b7a78264accd06d699"},"ros-noetic-base-local-planner-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674451553675,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"e3cb85c8d46be9a60a0a56399718e5c3","name":"ros-noetic-base-local-planner","requires":[],"size":251588,"version":"1.17.3","binstar":{"package_id":"63ce173e8ff1ad27426d0557","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3edba2f351e76e8d8b0b76c50d40be98b80ba78089ae9badada58f56b66be39"},"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674454047482,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d6689e486e39f6fe49a1e0418649c5fc","name":"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":119126,"version":"0.8.2","binstar":{"package_id":"63ce1a25d0e8c095e24669c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1489649639ba0c7e7f4fd960289c122f1d379a3e6d0542c81495dfa3449c47af"},"ros-noetic-moveit-ros-occupancy-map-monitor-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674453090331,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"52dc00e0045ed94a5f75bdc954a2598f","name":"ros-noetic-moveit-ros-occupancy-map-monitor","requires":[],"size":144350,"version":"1.1.11","binstar":{"package_id":"63ce1b09dbdf7335210c4582","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3494ab4eb53f1ecfd99a0aabd28cf9857a4cf784a350f3c9900254f865c2a711"},"ros-noetic-moveit-simple-controller-manager-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674453738650,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"99566bd086c6556a03d383c6c0b32e5d","name":"ros-noetic-moveit-simple-controller-manager","requires":[],"size":195119,"version":"1.1.11","binstar":{"package_id":"63ce1b0d989160afcf738400","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3aae68361310924c042631dcea5d92230c58dced37b9951a910f1fa311789043"},"ros-noetic-chomp-motion-planner-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1674454429287,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a60e502df513a090883b7ca0ea595f4f","name":"ros-noetic-chomp-motion-planner","requires":[],"size":131411,"version":"1.1.11","binstar":{"package_id":"63ce1bdac37c80a75b3d8f45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"decca4438eaad991567b2158ec512e29be17c88a040d31f82234580ffda85690"},"ros-noetic-rotate-recovery-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674453414325,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"9d105751e9a21df5e3b01806d0db5c1a","name":"ros-noetic-rotate-recovery","requires":[],"size":37741,"version":"1.17.3","binstar":{"package_id":"63ce1ed5989160afcf744ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f24c1c84bd2d1ba29447e19f8d026029f92105065e126ae4eb7e9c4ac62df695"},"ros-noetic-moveit-resources-prbt-moveit-config-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674457179159,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2ae4219cb563d9670305e1f66d0b4cdb","name":"ros-noetic-moveit-resources-prbt-moveit-config","requires":[],"size":25565,"version":"0.8.2","binstar":{"package_id":"63ce205359c09271a42e43a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f89e488a77db8973c6e9a529615d50789b262127930f3bab64a66620ec4ca57e"},"ros-noetic-moveit-ros-control-interface-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674457069223,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3de47936e037d7e04670d5afec5fa44e","name":"ros-noetic-moveit-ros-control-interface","requires":[],"size":166470,"version":"1.1.11","binstar":{"package_id":"63ce205568b198bb951d6290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b515ec29a1b9c9803e208fac1314d8981eaae023eb4e7ae21f354840feb29cfa"},"ros-noetic-moveit-ros-planning-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674456571565,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1b02dffc7cea3dbd0e699b351f408bf1","name":"ros-noetic-moveit-ros-planning","requires":[],"size":1038889,"version":"1.1.11","binstar":{"package_id":"63ce2059c37c80a75b3f5ec4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e170dc587b995cf7554822274c58ee91c2f64e6b962ea8b58a5bcff2f0b5859a"},"ros-noetic-simulators-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674470614403,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"95a3f332202a05086f235f0c42c75c6e","name":"ros-noetic-simulators","requires":[],"size":11518,"version":"1.5.0","binstar":{"package_id":"63ce2bed0273ee116afd146c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7af19e878c9c090aa89368128ac0f11657d1a918a4eb4dacc1065997ee2c42d3"},"ros-noetic-moveit-kinematics-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","lxml","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674462804370,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5dfe2f0b751283f60166dba9b75a2720","name":"ros-noetic-moveit-kinematics","requires":[],"size":265338,"version":"1.1.11","binstar":{"package_id":"63ce2f148ff1ad2742762b05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f6f2d3a747cfab2c74525cbd60fa1ddb3c38f90423bcbb8682cf1e2a83017ba"},"ros-noetic-moveit-ros-robot-interaction-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674463692394,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"5977bb5380e925bc0c23bac96e3b95cf","name":"ros-noetic-moveit-ros-robot-interaction","requires":[],"size":124539,"version":"1.1.11","binstar":{"package_id":"63ce2f19d0e8c095e251962f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"031c2180adf020dd5f5edf6b477a0f00513e3a92af98a90228e98641542aebf9"},"ros-noetic-moveit-ros-perception-1.1.11-py39hca470c7_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["glew >=2.1.0,<2.2.0a0","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39hca470c7_5","timestamp":1674464110680,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"4a5cb0bfb0d2cc35e5b6cf41395a97c8","name":"ros-noetic-moveit-ros-perception","requires":[],"size":203991,"version":"1.1.11","binstar":{"package_id":"63ce2f1c912363225bf5fbe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f16d24f14f21b7444a5e493ec2d9f6350c032fa33984d659bb9c23ea2d804ad"},"ros-noetic-move-base-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674456833379,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fca961ddba10c489059a1460db51c7b5","name":"ros-noetic-move-base","requires":[],"size":277794,"version":"1.17.3","binstar":{"package_id":"63ce2f222b70bce8309b1ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"642325aaa3ed192bf3234b1b2fb4a65cc47ae876b977369cf456dd2ebd2e8cc7"},"ros-noetic-moveit-ros-warehouse-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674463301518,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a4783d20f49f1321d1d7092a3751f324","name":"ros-noetic-moveit-ros-warehouse","requires":[],"size":443195,"version":"1.1.11","binstar":{"package_id":"63ce2f275a31eb90f6111bd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caf1a5bc11f3cea28219e3606da83708f8668fbc34557fc5b105d73ec89a67d0"},"ros-noetic-turtlebot3-navigation-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674459657053,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ea3dbb1bf55208994ff2ccfd619587a0","name":"ros-noetic-turtlebot3-navigation","requires":[],"size":18919,"version":"1.2.5","binstar":{"package_id":"63ce3c010273ee116a00cb87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3eda83d260107bfa33559aac1aeb1eb428a05bca1b8082be20a2a9c4b272fb52"},"ros-noetic-moveit-ros-move-group-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674467258400,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d47ed46d58c1136555af99b7358732ee","name":"ros-noetic-moveit-ros-move-group","requires":[],"size":382259,"version":"1.1.11","binstar":{"package_id":"63ce3cc02ff78d332ee8d57b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"272762487542854df6f6b7ffccb443fe1375bb6bb889214beb30207ed82032db"},"ros-noetic-moveit-planners-ompl-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674467775987,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"cafd02d2b23e6e2009f1b99d2d4792d9","name":"ros-noetic-moveit-planners-ompl","requires":[],"size":450928,"version":"1.1.11","binstar":{"package_id":"63ce3cc6912363225bfac243","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f083ddfccff8a98afbc8eb07a4eb3bdc726e0b49c86bbc46911b1b3dddbf3a8b"},"ros-noetic-moveit-fake-controller-manager-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674464455384,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39c2caa433b983a9abcb29d2bcf70798","name":"ros-noetic-moveit-fake-controller-manager","requires":[],"size":65892,"version":"1.1.11","binstar":{"package_id":"63ce3ccbdbdf7335211c754c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd1be4977a457bd7c803ea51bbb1cf1ffbfaf91b05f60223c0e9893ec051d5ec"},"ros-noetic-moveit-resources-prbt-pg70-support-0.8.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674467876087,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"faad4bc667916d9f03f407211dce5ebc","name":"ros-noetic-moveit-resources-prbt-pg70-support","requires":[],"size":18147,"version":"0.8.2","binstar":{"package_id":"63ce3cce912363225bfae548","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e21fa78210b2b263301d7946964b8e02e45f686b67af7ca9d05f5caf37203a6"},"ros-noetic-turtlebot3-1.2.5-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674461713605,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"edd122bc94331870f98f7edabe0ca840","name":"ros-noetic-turtlebot3","requires":[],"size":9561,"version":"1.2.5","binstar":{"package_id":"63ce40bc5a31eb90f6189a76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e798ecded063496611ade6b4c3addf629185035ce4be054a5a2621428215055"},"ros-noetic-rosserial-client-0.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbash","ros-noetic-rospy","ros-noetic-rosserial-msgs","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39h46ec4ef_5","timestamp":1675985787282,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b3db03c30f6793ba9f733b6232a34a08","name":"ros-noetic-rosserial-client","requires":[],"size":37551,"version":"0.9.2","binstar":{"package_id":"63ce42102ff78d332eeadf06","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55fa499446792d85414e2954bba3fec645e73b735c12207cd02e263cf8dd5e7c"},"ros-noetic-desktop-full-1.5.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674471556222,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"20f6d419e9c1ac0a2964c689315e49db","name":"ros-noetic-desktop-full","requires":[],"size":12143,"version":"1.5.0","binstar":{"package_id":"63ce4a115a31eb90f61d4ea8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09ef8ea41672d96b56c3df021519e962ea61b285329e57daa2b312cb0c9e80be"},"ros-noetic-mavros-msgs-1.16.0-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_7","timestamp":1684474376668,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c913828a217ba5e6616be41740805985","name":"ros-noetic-mavros-msgs","requires":[],"size":479088,"version":"1.16.0","binstar":{"package_id":"63ce567f2ff78d332ef49b71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aeed181b2e82a599bb9268bbadc7fab9ade066f5ec194dd53bdea8b98f0a93f"},"ros-noetic-plotjuggler-ros-1.7.0-py39h83befe1_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-diagnostic-msgs","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-plotjuggler","ros-noetic-plotjuggler-msgs","ros-noetic-rosbag-storage","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h83befe1_6","timestamp":1681697633591,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1a2d7a6c49b7b536c301e8accd1af211","name":"ros-noetic-plotjuggler-ros","requires":[],"size":960274,"version":"1.7.0","binstar":{"package_id":"63ce569cd0e8c095e26a1f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6216da558fdb8c53c9cfdb04e23f171a4e1b4d1ada50e987644c336588bc67da"},"ros-noetic-moveit-plugins-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674467356898,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"89c5eecc2b1b39f65b35bf3e7eae1ce2","name":"ros-noetic-moveit-plugins","requires":[],"size":9099,"version":"1.1.11","binstar":{"package_id":"63ce5b7bc37c80a75b67fb09","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1644063f9b8ac11ddaa0ed8b4c76f4d29d61de5ae5b269703a19dc2adfd52578"},"ros-noetic-moveit-ros-benchmarks-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674468201586,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8df89bd0479f74dd48e4f711f7427401","name":"ros-noetic-moveit-ros-benchmarks","requires":[],"size":258378,"version":"1.1.11","binstar":{"package_id":"63ce5b7d989160afcf843099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7a75948687e36719216006b6738d85327ce4fcd47565c11bcac3ae6d99a38fa"},"ros-noetic-moveit-ros-manipulation-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674470016524,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c439b056d8a8c9c9e368e49ea1ed95fe","name":"ros-noetic-moveit-ros-manipulation","requires":[],"size":325946,"version":"1.1.11","binstar":{"package_id":"63ce64568ff1ad274294d319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2dc6a03b080b6c14f49336e2ac2fb1148d49fd2eabcb508c59c428689dd1d32c"},"ros-noetic-teb-local-planner-0.9.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674470480690,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"ce16014dfb9b886c67db15886252078e","name":"ros-noetic-teb-local-planner","requires":[],"size":799211,"version":"0.9.1","binstar":{"package_id":"63ce645c0273ee116a0da15c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34b3b166d84b57a4e79b312a14a3acb5875d7f45cb6426188d33c33a75b08f3d"},"ros-noetic-moveit-ros-planning-interface-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674471435396,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"87fcb309387670ec0255abde00ee86f7","name":"ros-noetic-moveit-ros-planning-interface","requires":[],"size":621870,"version":"1.1.11","binstar":{"package_id":"63ce672986de531a28e92324","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e82ee76afbb560e17e590975462125de82d1a823612b056530853acab426c44"},"ros-noetic-moveit-ros-planning-interface-1.1.12-py39hae387e0_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","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":"py39hae387e0_6","timestamp":1687988735645,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c0e061c4c2a013c3b98b359a15ce8081","name":"ros-noetic-moveit-ros-planning-interface","requires":[],"size":631772,"version":"1.1.12","binstar":{"package_id":"63ce672986de531a28e92324","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0099681a8b4147bc921ddbf9b8c983e0543187a890b250e7431ed34e260f8b8"},"ros-noetic-moveit-ros-visualization-1.1.11-py39h45080bc_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python 3.9.* *_cpython","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":"py39h45080bc_5","timestamp":1674473206042,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0081a163ada497731a4ff90ae42736e1","name":"ros-noetic-moveit-ros-visualization","requires":[],"size":650055,"version":"1.1.11","binstar":{"package_id":"63ce6b2d68b198bb95298494","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f2df7bef598b599c33804daf29650835d50ca7c8c3fb99be258e0606682faa5"},"ros-noetic-moveit-commander-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["assimp","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674473432422,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"b64408699b9fc1cadcbd7c305b1423be","name":"ros-noetic-moveit-commander","requires":[],"size":56288,"version":"1.1.11","binstar":{"package_id":"63ce6b35b23346582ca72eb0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4063b0db2366b0e65e1b7d3ebd611bf379e9c62cbadce6e33e1eeb323a4cd23"},"ros-noetic-moveit-planners-chomp-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674473811388,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0f459cc24bfaeeb279ccdf57eb17e7f9","name":"ros-noetic-moveit-planners-chomp","requires":[],"size":37966,"version":"1.1.11","binstar":{"package_id":"63ce6b38dbdf7335213f6181","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc2c93a71a865a7f28d722cf818417cc273be1b2fb53109c9c2a98722e1bef6a"},"ros-noetic-moveit-setup-assistant-1.1.11-py39h45080bc_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","ompl >=1.5.2,<1.6.0a0","python 3.9.* *_cpython","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":"py39h45080bc_5","timestamp":1674474827798,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2e169b3f9d163e9d0d10864ab37573e3","name":"ros-noetic-moveit-setup-assistant","requires":[],"size":999853,"version":"1.1.11","binstar":{"package_id":"63ce6ef914201bfa45b9c36f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40ccd5e20cf453bc6b4f05eaef3e20ce912991e50acdb0f80894cf4aed3700a4"},"ros-noetic-pilz-industrial-motion-planner-testutils-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674475200977,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"39c97bba9ffe1e762d022526cdee23af","name":"ros-noetic-pilz-industrial-motion-planner-testutils","requires":[],"size":141353,"version":"1.1.11","binstar":{"package_id":"63ce6f01c37c80a75b7789af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64a6bbac0a7cd152621c8a3fcc7fea019de84a83b7dffdc281413a0dd3e8f563"},"ros-noetic-moveit-ros-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674475320060,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2928e3c5fcf961b97aa181717997bb40","name":"ros-noetic-moveit-ros","requires":[],"size":10598,"version":"1.1.11","binstar":{"package_id":"63ce6f048ff1ad27429d0182","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2986155ab21c2894573161d7039fe79e33a2155c75963e32b12dc867417c203a"},"ros-noetic-moveit-planners-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674476446711,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d39ef6b753734de64d173ba5235878df","name":"ros-noetic-moveit-planners","requires":[],"size":9764,"version":"1.1.11","binstar":{"package_id":"63ce72eb14201bfa45ba6e16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec147d494d57ed864136c2b0d97d1b93dc8949c99fca65c31e158206258fccfb"},"ros-noetic-pilz-industrial-motion-planner-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674476065285,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"91284675c6c61fe24879c4a78ce28df0","name":"ros-noetic-pilz-industrial-motion-planner","requires":[],"size":535495,"version":"1.1.11","binstar":{"package_id":"63ce72eda64974fd09454e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80c3b0b1d426b004a29bb77bfa005e8c26e5f9a2b5735d5849c2e861c7bc3641"},"ros-noetic-moveit-1.1.11-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1674476576363,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"fbf9963656539fa362197c59e0c2dee3","name":"ros-noetic-moveit","requires":[],"size":10921,"version":"1.1.11","binstar":{"package_id":"63ce72f6989160afcf8c91c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f82f8f81c5bcde07c6d9dcafb521a6d94ca67460fde66d09a70f2a581f37be07"},"ros-noetic-fcl-0.6.1-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libccd-double >=2.1,<2.2.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"build":"py39h46ec4ef_5","timestamp":1674541810398,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"82682729bc49aa40a7a3edd5878ec133","name":"ros-noetic-fcl","requires":[],"size":1277057,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88181db756823d2149b30c4a4203078f2bf5c139a4d48420816c4d14da064cab"},"ros-noetic-fcl-0.6.1-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["eigen","libccd-double >=2.1,<2.2.0a0","libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706499723471,"md5":"27c889a61d043383fc58bfcbffd3d2d8","name":"ros-noetic-fcl","requires":[],"size":1279172,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4ca5d216b19dac6102088012832c7447592cf78c82854463fc8b2cf8304fc5b"},"ros-noetic-laser-proc-0.1.6-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39h46ec4ef_5","timestamp":1675986464267,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"28755323b9f1c5187910744cbecd4c19","name":"ros-noetic-laser-proc","requires":[],"size":66516,"version":"0.1.6","binstar":{"package_id":"63d30dc88ff1ad27429ecf5e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff12874eec147fe1ed53dde486b3734fa9076ef2035cd9bfa5919bbcc4c018d1"},"ros-noetic-sound-play-0.3.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["gst-plugins-base","gst-plugins-good","gst-plugins-ugly","gstreamer","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pygobject","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1675193837911,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8280b30f0e619d7b163810bdf6d084b6","name":"ros-noetic-sound-play","requires":[],"size":245016,"version":"0.3.16","binstar":{"package_id":"63d6dd63dbdf7335211b72d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90341981be4fe1b4b085f7fd4a1f55735631cf1ce8f3fe3d993a88126cc9ec8a"},"ros-noetic-audio-common-msgs-0.3.16-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1675193429887,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"1bf7d07c48f03ac483ba994ad7f8f03d","name":"ros-noetic-audio-common-msgs","requires":[],"size":28382,"version":"0.3.16","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c91cbaa2dd105d4588cf6a5cd7424c5946397f4e12425124c7c05238e599f838"},"ros-noetic-audio-common-msgs-0.3.17-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503258825,"md5":"4b164789d0e30c1a47ab511beb6058fa","name":"ros-noetic-audio-common-msgs","requires":[],"size":31682,"version":"0.3.17","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a81d78ef936d4268fd8a3852ae97fc440a322ce467ff5e52a43c121e8eedd34"},"ros-noetic-pid-0.0.28-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1675193673304,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"06cac21bc821b3553ca79ef6fcb86964","name":"ros-noetic-pid","requires":[],"size":142760,"version":"0.0.28","binstar":{"package_id":"63d96b6a912363225b710bc3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8390ce2e7cca3d7767d84900a22c781ab418b98cd2c2cd988d3b6a076593e0e"},"ros-noetic-move-slow-and-clear-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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"],"build":"py39h46ec4ef_5","timestamp":1675986320919,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"74a4b401443327149d578884618761c0","name":"ros-noetic-move-slow-and-clear","requires":[],"size":55153,"version":"1.17.3","binstar":{"package_id":"63e5868a14201bfa45c0f340","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"598df579d14c3c60365b01b9af1fb9abd303d5ab7e0521a986c85d007fdf85a2"},"ros-noetic-global-planner-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-navfn","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-ros"],"build":"py39h46ec4ef_5","timestamp":1675986073474,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a42b3d13a760a527a19af3bb4609c603","name":"ros-noetic-global-planner","requires":[],"size":140379,"version":"1.17.3","binstar":{"package_id":"63e5868bde175ecc9ddbc3ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d33772e09d64aa4aaa7517255e29dcda162cb69e0c73ff3ad5248cd193463510"},"ros-noetic-carrot-planner-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-base-local-planner","ros-noetic-costmap-2d","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39h46ec4ef_5","timestamp":1675986557053,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3b1d923620d4154f6e897c4531cbf92b","name":"ros-noetic-carrot-planner","requires":[],"size":34028,"version":"1.17.3","binstar":{"package_id":"63e5868dbd2d12dccac49780","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a2900f6ff763441a2fe5dfeebae99a798028a15988d2e18e26b9f4efac7fc0d"},"ros-noetic-fake-localization-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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"],"build":"py39h46ec4ef_5","timestamp":1675986695465,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a4ba768d4f681ee452e303687b87e880","name":"ros-noetic-fake-localization","requires":[],"size":111321,"version":"1.17.3","binstar":{"package_id":"63e587aad831fccc8a2e3e43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f6b75d3a53a2d3f9edb61a0af41b598c63e849804306c125d8e1a2c9354ec69"},"ros-noetic-fake-localization-1.17.3-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"osx-arm64","timestamp":1692221394778,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py39h46ec4ef_7","md5":"b20e68c1c0f7d6b1615b099b0fb41431","name":"ros-noetic-fake-localization","requires":[],"size":112331,"version":"1.17.3","binstar":{"package_id":"63e587aad831fccc8a2e3e43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33906a2db2e285cc9b2c5e6242d95c3dce04ace5647cfcf005188cb44a48b7c0"},"ros-noetic-rgbd-launch-2.3.0-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1675985889592,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"102b6d3473f075b5972a234db84e2a1c","name":"ros-noetic-rgbd-launch","requires":[],"size":17076,"version":"2.3.0","binstar":{"package_id":"63e587ac0ac8211534858ecf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"066d91fd76ced11dfb72cf2b89616e9dde9da46fe79281a08535ef7e4b3e9aba"},"ros-noetic-rgbd-launch-2.4.0-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_6","timestamp":1682028860204,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"3dadfa447f77de2821863e6109e7a0b0","name":"ros-noetic-rgbd-launch","requires":[],"size":16956,"version":"2.4.0","binstar":{"package_id":"63e587ac0ac8211534858ecf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"803d6082e7b177999ff28e790e8d89661321f650e31dd5575fbb6ff90250af80"},"ros-noetic-dwa-local-planner-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["eigen","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-dynamic-reconfigure","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h46ec4ef_5","timestamp":1675986218334,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d0ed0d2b0abd958d04f96288177ba526","name":"ros-noetic-dwa-local-planner","requires":[],"size":139127,"version":"1.17.3","binstar":{"package_id":"63e587b0d831fccc8a2e3e9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc6fa581af252d78a7227d2c114c143f6b4e6817b9cadb8bdaa82850ad838de6"},"ros-noetic-navigation-1.17.3-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":false,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-amcl","ros-noetic-base-local-planner","ros-noetic-carrot-planner","ros-noetic-clear-costmap-recovery","ros-noetic-costmap-2d","ros-noetic-dwa-local-planner","ros-noetic-fake-localization","ros-noetic-global-planner","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-move-base-msgs","ros-noetic-move-slow-and-clear","ros-noetic-nav-core","ros-noetic-navfn","ros-noetic-rotate-recovery","ros-noetic-voxel-grid"],"build":"py39h46ec4ef_5","timestamp":1675987393394,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"6b30ca4dd640b91c8638c66271a3c93c","name":"ros-noetic-navigation","requires":[],"size":9928,"version":"1.17.3","binstar":{"package_id":"63e589c9d831fccc8a2ebe0c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b05fdfe85cf118fe99f998eed5193b76e3d17d63890f090d1f16f4653b218afb"},"ros-noetic-rosserial-arduino-0.9.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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-rosserial-client","ros-noetic-rosserial-msgs","ros-noetic-rosserial-python"],"build":"py39h46ec4ef_5","timestamp":1675987274202,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"321c01fa146f49c62bbdbd2a1d98cf21","name":"ros-noetic-rosserial-arduino","requires":[],"size":62197,"version":"0.9.2","binstar":{"package_id":"63e589cbd831fccc8a2ebe24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91e40adff2cf915c4f8c08895249a8a31edabbe13ae767fea6971609c7f900a5"},"ros-noetic-rosauth-1.0.1-py39h349b7d4_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39h349b7d4_5","timestamp":1676582678693,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"19b260608db492e687805656e76ba94e","name":"ros-noetic-rosauth","requires":[],"size":49105,"version":"1.0.1","binstar":{"package_id":"63ee9a01f048dbdee41065f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08d1413f7078a91f3f5da597346c54f6b95344bd317e3330e1b1137172c522fe"},"ros-noetic-rosbag-storage-1.16.0-py39hd3ac8d3_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost-cpp","bzip2 >=1.0.8,<2.0a0","console_bridge >=1.0.2,<1.1.0a0","gpgme >=1.18.0,<1.19.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.9.* *_cpython","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":"py39hd3ac8d3_5","timestamp":1676581171884,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a09f6249e46a5f0b7ea48939ee87dcf7","name":"ros-noetic-rosbag-storage","requires":[],"size":182964,"version":"1.16.0","binstar":{"package_id":"63ee9a03f048dbdee410665b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1734644d21d61062c431c3fbf9ec473879422c962569de9cafb1f7f3ad9f967f"},"ros-noetic-librealsense2-2.50.0-py39h349b7d4_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libusb >=1.0.26,<2.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h349b7d4_5","timestamp":1676582449058,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"150e2311b5c3d507cbdd88cb57641d25","name":"ros-noetic-librealsense2","requires":[],"size":16892708,"version":"2.50.0","binstar":{"package_id":"63ee9d27b9c122563cec392b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73b9eb52d8797024e86ed8b5f312af0652bd0151223f161bb57d6ab937898f9b"},"ros-noetic-librealsense2-2.50.0-py311h577d203_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311h577d203_8","build_number":8,"depends":["libcxx >=15","libusb >=1.0.26,<2.0a0","numpy >=1.23.5,<2.0a0","openssl >=3.2.0,<4.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706498667073,"md5":"2d3667a33187bbf9305489424bd3704f","name":"ros-noetic-librealsense2","requires":[],"size":16945282,"version":"2.50.0","binstar":{"package_id":"63ee9d27b9c122563cec392b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f16cadd417b745d44c3d0c68efd63c9c229d3d0049c020b25927d9f6184ccf9"},"ros-noetic-webkit-dependency-1.1.2-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqtwebengine","python 3.9.* *_cpython","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h46ec4ef_5","timestamp":1676585439279,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"68f733869775d466f82a392c84b5dc02","name":"ros-noetic-webkit-dependency","requires":[],"size":11204,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e5602fdecc9958d26346fa1cb32d37b769994bb46ab0a37a749037fde1e498d"},"ros-noetic-webkit-dependency-1.1.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","pyqtwebengine","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706498897426,"md5":"f4d393c75cecba76afb99ac8807b40d5","name":"ros-noetic-webkit-dependency","requires":[],"size":11638,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9cfec22a14b7056711590255d660b2af517872a2b289503012e1837de95b20e"},"ros-noetic-python-qt-binding-0.4.4-py39h46ec4ef_5.tar.bz2":{"build_number":5,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["adwaita-icon-theme","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python 3.9.* *_cpython","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":"py39h46ec4ef_5","timestamp":1676861438147,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"53fca10437c1bcbb0c9509447ff3f202","name":"ros-noetic-python-qt-binding","requires":[],"size":29900,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3daf23c664c8902e11c96f2b29caa82fe7ff6072e0034d228a4b6e3ee05e614c"},"ros-noetic-python-qt-binding-0.4.4-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["adwaita-icon-theme","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python 3.9.* *_cpython","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 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39h46ec4ef_6","timestamp":1681946901458,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d2f937e9d4f05b53c4c85f813750de84","name":"ros-noetic-python-qt-binding","requires":[],"size":30227,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8a61165588918c7bf9f98bd1150edc1f3523816134e66c3c80e6ae58cb655d6f"},"ros-noetic-python-qt-binding-0.4.4-py311ha5a60af_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311ha5a60af_8","build_number":8,"depends":["adwaita-icon-theme","libcxx >=15","numpy >=1.23.5,<2.0a0","pyqt >=5.15.9,<5.16.0a0","pyqt-builder","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503045641,"md5":"4bf89ec2161ee76e42b36e1731bdf462","name":"ros-noetic-python-qt-binding","requires":[],"size":34532,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"557525f096b07f0c32ef81b3c18528d330a762288c5046f221d4dec2de8229e9"},"ros-noetic-ros-babel-fish-0.9.3-py39h349b7d4_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.9.* *_cpython","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":"py39h349b7d4_6","timestamp":1678494996961,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8f8af0edbd372cb96f454da8f19bf04b","name":"ros-noetic-ros-babel-fish","requires":[],"size":380145,"version":"0.9.3","binstar":{"package_id":"640bcb2a56f3d8408e3bd098","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27605b515223faf584ac748a94a7d02077ee8ddf49750e7957a1cdf898684e1c"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_6","timestamp":1678494771606,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2bfda6b3c2badbcc9b3b48286da6bdc8","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":61772,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d78d5e69ca91e1a803b53aee1df2ffcb45066956c5dae2246691be07997465ce"},"ros-noetic-foxglove-bridge-0.5.1-py39he1fc7c7_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libzlib >=1.2.13,<1.3.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.9.* *_cpython","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":"py39he1fc7c7_6","timestamp":1678495258731,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"0b0948dcb6c9f9a121caf6a666770080","name":"ros-noetic-foxglove-bridge","requires":[],"size":749396,"version":"0.5.1","binstar":{"package_id":"640bcc155646df5d56040be2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23ba07bc2f5f006b293cbb15462f9aba1f2465fe8ee8e215ebcc7bb668b922b2"},"ros-humble-foxglove-bridge-0.5.1-py310ha05bcd8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python 3.10.* *_cpython","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":"py310ha05bcd8_3","timestamp":1678496614405,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"542850b73a7fa0a479cfa9c669977a5a","name":"ros-humble-foxglove-bridge","requires":[],"size":943514,"version":"0.5.1","binstar":{"package_id":"640bd1e40078da3fd81620c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f63929ef50d68afa48611e0ec52c5e4bc25a41ee3762899006f9bf7f911a246"},"ros-noetic-graph-msgs-0.1.0-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_6","timestamp":1680039636484,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"aadfae26f73f5e5247913ae7f3d709c7","name":"ros-noetic-graph-msgs","requires":[],"size":27668,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c45125138ac0851fd7d2c39d8d4b37a6aca3e3ff0890ac157ba471fafa17f1a3"},"ros-noetic-moveit-visual-tools-3.6.0-py39h46ec4ef_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_6","timestamp":1680040508437,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"a77881ffc3a37428f9bde7e935e9e1e0","name":"ros-noetic-moveit-visual-tools","requires":[],"size":318253,"version":"3.6.0","binstar":{"package_id":"64235f6ef4abb0819e151d80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96a21c0d3ba3cd5f81073f4d7e578d796d6092a9e91d76ed6e9115fa01e735d8"},"ros-noetic-rviz-visual-tools-3.9.3-py39h45080bc_6.tar.bz2":{"build_number":6,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python 3.9.* *_cpython","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":"py39h45080bc_6","timestamp":1680040057706,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2240e3e70c8ad45284a77636bdce4d88","name":"ros-noetic-rviz-visual-tools","requires":[],"size":1555718,"version":"3.9.3","binstar":{"package_id":"64235f6ff4abb0819e151dbf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7963aed2f66d1be56057ce27d6e37355654a8283d6d331a00664fa4c0fa22dd"},"ros-humble-plotjuggler-3.5.1-py310hc9839f6_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","cppzmq","libcxx >=14.0.6","libxcb >=1.13,<1.14.0a0","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.4,<4.4.0a0"],"build":"py310hc9839f6_3","timestamp":1681696785502,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"f8010e4550af0ed183ed61cd9ae5f827","name":"ros-humble-plotjuggler","requires":[],"size":22577291,"version":"3.5.1","binstar":{"package_id":"642a21ef72efb6ba8923c015","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0a441d7dbaee40cc2a6c6b621ea5466445039c19f98a30d8581fcfd7cfc4de0"},"ros-humble-plotjuggler-msgs-0.2.3-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1681695871114,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"d1b006b020d38e9027aef65ed22541c5","name":"ros-humble-plotjuggler-msgs","requires":[],"size":93676,"version":"0.2.3","binstar":{"package_id":"642a21f3f4abb0819ee3cabc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f02406f8006edf2d5d38b8d3230ad57256ef2cbf0012edaa484f28f838ec147"},"ros-humble-plotjuggler-ros-1.7.3-py310h91007db_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["boost >=1.78.0,<1.78.1.0a0","libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-diagnostic-msgs","ros-humble-fastcdr","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-plotjuggler","ros-humble-plotjuggler-msgs","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rosbag2-transport","ros-humble-sensor-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py310h91007db_3","timestamp":1681697198238,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"8260e7bcc0e786d1b07d1a4bfd4a6e93","name":"ros-humble-plotjuggler-ros","requires":[],"size":436728,"version":"1.7.3","binstar":{"package_id":"642a21f96d6885450301f10f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3fa06b3685160b01f2bf43df55bee48088abcca0bcaf2c494510b3ab8daabcf"},"ros-noetic-microstrain-inertial-msgs-3.0.1-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_7","timestamp":1684474585574,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"eaaf65d83b23ee0a703fe7b588401837","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":219471,"version":"3.0.1","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8562f8e6b6a424dac04ee3f91c1c84768e0b622a03a84b0e386677cf777bafc0"},"ros-noetic-microstrain-inertial-driver-3.0.1-py39h99659fe_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcurl >=7.88.1,<8.0a0","libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h99659fe_7","timestamp":1684474907832,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"2d26911405370d14f0cd05a3f72888c7","name":"ros-noetic-microstrain-inertial-driver","requires":[],"size":548221,"version":"3.0.1","binstar":{"package_id":"64670c2db8f416e9fb5ed89a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7e70a91a752f7ea7efe8166a40c76f6ece54284cff35a55b39fbe3644b92446"},"ros-humble-actuator-msgs-0.0.1-py310h927cc32_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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":"py310h927cc32_3","timestamp":1684890372317,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c7c13f80cd8e82bf99fe12b2b06eeb42","name":"ros-humble-actuator-msgs","requires":[],"size":109909,"version":"0.0.1","binstar":{"package_id":"646d616bd52c6a0ecdfb698f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cdeccdab1c04ebeb136f732dddeab79e0ad9b81bb6e9fc1ae5fb4704d6dbdf67"},"ros-humble-nav2-mppi-controller-1.1.7-py310h256e9aa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"arm64","platform":"osx","depends":["benchmark","libcxx >=14.0.6","llvm-openmp >=14.0.6","numpy >=1.21.6,<2.0a0","python 3.10.* *_cpython","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-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xsimd","xtensor"],"build":"py310h256e9aa_3","timestamp":1686924834401,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"7de8b9865a26faacd5ff7488c23bd7ea","name":"ros-humble-nav2-mppi-controller","requires":[],"size":393556,"version":"1.1.7","binstar":{"package_id":"648c6e31a55ac89ef993e285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9d9b753e28f18925b358a7ace0152bf857028150cf345c0ec9f259bc33404cb"},"ros-noetic-hpp-fcl-2.3.6-h0f4a31f_21.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"h0f4a31f_21","build_number":21,"depends":["hpp-fcl 2.3.6*"],"platform":"osx","timestamp":1706494924025,"md5":"265bb70ec4f5e5d3a4a6eca7f65de5f1","name":"ros-noetic-hpp-fcl","requires":[],"size":3909,"version":"2.3.6","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35bd4aef6c3e776a7fb89a57ba11b115356775f5bf435437b3e96975ce227127"},"ros-noetic-octomap-ros-0.4.1-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"py39h46ec4ef_7","timestamp":1688952738498,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","subdir":"osx-arm64","md5":"c9854858611056889e1c3bd72f08ea9c","name":"ros-noetic-octomap-ros","requires":[],"size":20857,"version":"0.4.1","binstar":{"package_id":"64ab5faf6bd8494aaaca1eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ea23b90b58ada49c29d05c6730b030a1bf5ed0a6c9a9320fb7600737dcbd4b5"},"ros-noetic-ackermann-msgs-1.0.2-py39h46ec4ef_7.tar.bz2":{"build_number":7,"license":"BSD-3-Clause","has_prefix":true,"machine":"arm64","platform":"osx","depends":["libcxx >=14.0.6","numpy >=1.20.3,<2.0a0","python 3.9.* *_cpython","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":"osx-arm64","timestamp":1692221536013,"arch":"arm64","operatingsystem":"darwin","target-triplet":"arm64-any-darwin","build":"py39h46ec4ef_7","md5":"1a44cbd2a367be45687a1fc0b0b978fe","name":"ros-noetic-ackermann-msgs","requires":[],"size":27557,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"553d7cb231cb17c9d64b46b9b9b8c16c19e2d81eca2aa98e5f235cb44302d1e9"},"ros-noetic-ackermann-msgs-1.0.2-py311hbfa132e_8.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":true,"subdir":"osx-arm64","arch":"arm64","build":"py311hbfa132e_8","build_number":8,"depends":["libcxx >=15","numpy >=1.23.5,<2.0a0","python 3.11.* *_cpython","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"osx","timestamp":1706503409483,"md5":"b409bc906ccc08eadd35640a63b3e87c","name":"ros-noetic-ackermann-msgs","requires":[],"size":30003,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0442499add75258c2c4ce08200012e0eeda6104173f4e08d070577cf42459be"},"ros-noetic-pinocchio-2.6.20-h0f4a31f_21.tar.bz2":{"operatingsystem":"darwin","machine":"arm64","target-triplet":"arm64-any-darwin","has_prefix":false,"subdir":"osx-arm64","arch":"arm64","build":"h0f4a31f_21","build_number":21,"depends":["pinocchio 2.6.20*"],"platform":"osx","timestamp":1706494917168,"md5":"756bed2ae59f9bea869162c9c5778584","name":"ros-noetic-pinocchio","requires":[],"size":3990,"version":"2.6.20","binstar":{"package_id":"65b70b5aee8d8b5e0ccb253e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d901fb243a4edbbf4c22bed2e63f24f1ec3b4af89a0248581d974e26e134a92"}},"packages.conda":{},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"osx","arch":"arm64","subdir":"osx-arm64"}} \ No newline at end of file